SQL Server, SQL Statistics 개체SQL Server, SQL Statistics Object

SQLServer:SQL Statistics SQL ServerSQL Server 개체는 SQL ServerSQL Server인스턴스로 보낸 컴파일과 요청 유형을 모니터링하는 카운터를 제공합니다.The SQLServer:SQL Statistics object in SQL ServerSQL Server provides counters to monitor compilation and the type of requests sent to an instance of SQL ServerSQL Server. 쿼리 컴파일 및 다시 컴파일 수와 SQL ServerSQL Server 인스턴스에서 받은 일괄 처리 수를 모니터링하면 SQL ServerSQL Server 가 사용자 쿼리를 처리하는 속도와 쿼리 최적화 프로그램이 쿼리를 처리하는 효율을 알 수 있습니다.Monitoring the number of query compilations and recompilations and the number of batches received by an instance of SQL ServerSQL Server gives you an indication of how quickly SQL ServerSQL Server is processing user queries and how effectively the query optimizer is processing the queries.

컴파일은 쿼리 반환 시간의 중요한 부분을 차지합니다.Compilation is a significant part of a query's turnaround time. 데이터베이스 엔진Database Engine 은 컴파일 비용을 줄이기 위해 컴파일된 쿼리 계획을 쿼리 캐시에 보관합니다.In order to save the compilation cost, the 데이터베이스 엔진Database Engine saves the compiled query plan in a query cache. 캐시의 목적은 컴파일된 쿼리를 다시 사용할 수 있도록 보관하여 컴파일 작업을 줄이고 다음 쿼리를 실행할 때 다시 컴파일할 필요를 없애는 것입니다.The objective of the cache is to reduce compilation by storing compiled queries for later reuse, therefore ending the requirement to recompile queries when later executed. 그러나 각각의 고유한 쿼리는 적어도 한 번은 컴파일해야 합니다.However, each unique query must be compiled at least one time. 다음 요인이 발생하면 쿼리를 다시 컴파일해야 합니다.Query recompilations can be caused by the following factors:

  • 테이블에 행 또는 인덱스를 추가하는 등의 기본 스키마 변경 또는 테이블에 많은 수의 행을 삽입하거나 삭제하는 등의 통계 스키마 변경을 통한 스키마 변경Schema changes, including base schema changes such as adding columns or indexes to a table, or statistics schema changes such as inserting or deleting a significant number of rows from a table.

  • 환경(SET 문) 변경Environment (SET statement) changes. ANSI_PADDING 또는 ANSI_NULLS 같은 세션 설정을 바꾸면 쿼리를 다시 컴파일해야 합니다.Changes in session settings such as ANSI_PADDING or ANSI_NULLS can cause a query to be recompiled.

    단순 매개 변수화 및 강제 매개 변수화 방법은 ALTER DATABASE(Transact-SQL)를 참조하세요.For more information about simple and forced parameterization, see ALTER DATABASE (Transact-SQL).

    다음은 SQL ServerSQL Server SQL Statistics 카운터에 대한 설명입니다.These are the SQL ServerSQL Server SQL Statistics counters.

SQL Server SQL Statistics 카운터SQL Server SQL Statistics counters 설명Description
Auto-Param Attempts/secAuto-Param Attempts/sec 초당 자동 매개 변수화 시도 수입니다.Number of auto-parameterization attempts per second. 합계는 자동 매개 변수화의 실패한 횟수, 안전한 횟수 그리고 안전하지 않은 횟수의 합과 같습니다.Total should be the sum of the failed, safe, and unsafe auto-parameterizations. 자동 매개 변수화는 유사한 여러 요청을 처리할 때 캐시된 결과 실행 계획을 다시 사용하기 위해 SQL ServerSQL Server 인스턴스가 일부 리터럴을 매개 변수로 바꾸어 Transact-SQLTransact-SQL 요청을 매개 변수화할 때 일어납니다.Auto-parameterization occurs when an instance of SQL ServerSQL Server tries to parameterize a Transact-SQLTransact-SQL request by replacing some literals with parameters so that reuse of the resulting cached execution plan across multiple similar-looking requests is possible. 새로운 버전의 SQL ServerSQL Server에서는 자동 매개 변수화를 단순 매개 변수화라고도 합니다.Note that auto-parameterizations are also known as simple parameterizations in newer versions of SQL ServerSQL Server. 이 카운터에는 강제 매개 변수화는 포함되지 않습니다.This counter does not include forced parameterizations.
Batch Requests/secBatch Requests/sec 초당 받는 Transact-SQLTransact-SQL 명령 일괄 처리 수입니다.Number of Transact-SQLTransact-SQL command batches received per second. 이 통계는 모든 제약 조건(I/O, 사용자 수, 캐시 크기, 요청의 복잡도 등)의 영향을 받습니다.This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). 높은 일괄 처리 수치는 높은 처리 효율을 의미합니다.High batch requests mean good throughput.
Failed Auto-Params/secFailed Auto-Params/sec 실패한 자동 매개 변수화의 초당 시도 횟수입니다.Number of failed auto-parameterization attempts per second. 이 값은 작을수록 좋습니다.This should be small. 이후 버전의 SQL ServerSQL Server에서는 자동 매개 변수화를 단순 매개 변수화라고도 합니다.Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL ServerSQL Server.
Forced Parameterizations/secForced Parameterizations/sec 초당 성공한 강제 매개 변수화 수입니다.Number of successful forced parameterizations per second.
Guided Plan Executions/secGuided Plan Executions/sec 계획 지침을 통해 쿼리 계획이 생성되는 초당 계획 실행 수입니다.Number of plan executions per second in which the query plan has been generated by using a plan guide.
Misguided Plan Executions/secMisguided Plan Executions/sec 계획 생성 중에 계획 지침을 적용할 수 없는 초당 계획 실행 수입니다.Number of plan executions per second in which a plan guide could not be honored during plan generation. 계획 지침이 무시되고 일반적인 컴파일을 사용하여 실행된 계획이 생성됩니다.The plan guide was disregarded and normal compilation was used to generate the executed plan.
Safe Auto-Params/secSafe Auto-Params/sec 안전한 자동 매개 변수화의 초당 시도 횟수입니다.Number of safe auto-parameterization attempts per second. 안전한 자동 매개 변수화는 여러 유사한 Transact-SQLTransact-SQL 문 간에 캐시된 실행 계획을 공유할 수 있도록 하는 결정을 참조하며Safe refers to a determination that a cached execution plan can be shared between different similar-looking Transact-SQLTransact-SQL statements. SQL ServerSQL Server 가 시도하는 많은 자동 매개 변수화 중 일부는 성공하고 나머지는 실패합니다. makes many auto-parameterization attempts some of which turn out to be safe and others fail. 이후 버전의 SQL ServerSQL Server에서는 자동 매개 변수화를 단순 매개 변수화라고도 합니다.Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL ServerSQL Server. 강제 매개 변수화는 포함되지 않습니다.This does not include forced parameterizations.
SQL Attention rateSQL Attention rate 초당 주의 수입니다.Number of attentions per second. 주의는 현재 실행 중인 요청을 종료하기 위한 클라이언트의 요청입니다.An attention is a request by the client to end the currently running request.
SQL Compilations/secSQL Compilations/sec 초당 SQL 컴파일 수입니다.Number of SQL compilations per second. 컴파일 코드 경로를 입력한 횟수를 나타내며Indicates the number of times the compile code path is entered. SQL ServerSQL Server에서 문 수준의 다시 컴파일에 의한 컴파일을 포함합니다.Includes compiles caused by statement-level recompilations in SQL ServerSQL Server. SQL ServerSQL Server 사용자 작업이 안정되면 이 값은 일정한 수준에 이릅니다.After SQL ServerSQL Server user activity is stable, this value reaches a steady state.
SQL Re-Compilations/secSQL Re-Compilations/sec 초당 문 다시 컴파일 수입니다.Number of statement recompiles per second. 문 다시 컴파일이 트리거된 횟수를 나타냅니다.Counts the number of times statement recompiles are triggered. 일반적으로 다시 컴파일하는 횟수는 적을수록 좋습니다.Generally, you want the recompiles to be low.
Unsafe Auto-Params/secUnsafe Auto-Params/sec 안전하지 않은 자동 매개 변수화의 초당 시도 횟수입니다.Number of unsafe auto-parameterization attempts per second. 예를 들어 쿼리는 캐시된 계획을 공유하지 않고 자동 매개 변수화하는 특성이 있습니다.For example, the query has some characteristics that prevent the cached plan from being shared. 이러한 자동 매개 변수화는 안전하지 않은 것으로 지정됩니다.These are designated as unsafe. 강제 매개 변수화 수는 여기에 포함되지 않습니다.This does not count the number of forced parameterizations.

참고 항목See Also

SQL Server, Plan Cache 개체 SQL Server, Plan Cache Object
리소스 사용 모니터링(시스템 모니터) Monitor Resource Usage (System Monitor)