통계 자동 작성 구성

Microsoft.SQLServer.2014.Database.Configuration.AutoCreateStat (UnitMonitor)

데이터베이스의 통계 자동 작성 설정을 모니터링합니다. 참고: 이 모니터는 기본적으로 사용하지 않도록 설정되어 있습니다. 필요한 경우 사용하도록 설정하려면 재정의를 사용하십시오.

Knowledge Base article:

요약

이 모니터는 이 데이터베이스의 통계 자동 작성 설정을 확인합니다. 이 모니터는 전체 표준 요구 사항에 포함되므로 설정이 지정된 표준과 맞지 않으면 경고가 발생합니다.

좋은 계획을 수립하려면 쿼리 최적화 프로그램에 정확한 최신 통계가 필요합니다. 대부분의 경우 SQL Server를 통해 통계를 유지 관리하는 것이 좋습니다. "통계 자동 작성" 및 "통계 자동 업데이트"를 해제하면 사용자가 직접 통계를 최신 상태로 유지해야 합니다. 그렇게 하지 못하면 쿼리 성능이 저하됩니다. 대부분의 응용 프로그램에서는 이러한 옵션을 ON으로 설정해야 합니다.

구성

통계 자동 작성 설정이 ON이면 쿼리 최적화 프로그램이 필요에 따라 인덱싱된 뷰의 테이블에 있는 하나 이상의 열에 대한 통계를 만들어 쿼리 계획 및 쿼리 성능을 향상시킵니다.

AUTO_CREATE_STATISTICS {ON | OFF}

원인

이 옵션이 필요한 설정과 일치하지 않으면 경고가 발생합니다. 기본적으로 이 모니터는 이 설정이 “OFF”로 설정될 때 경고를 발생시키도록 구성되어 있습니다.

해결 방법

이 문제는 다음을 수행하여 해결할 수 있습니다.:

또는 이 데이터베이스에서 이 모니터가 별로 중요하지 않을 경우 다음을 수행합니다.:

외부 리소스

이 설정에 대한 자세한 내용은 다음을 참조하세요. ALTER DATABASE SET 옵션 (Transact-SQL)

" 통계를 사용하여 쿼리 성능 향상"도 참조하세요.

재정의 가능한 매개 변수

이름

설명

기본값

알림 우선 순위

알림 우선 순위를 정의합니다.

보통

알림 심각도

알림 심각도를 정의합니다.

경고

SQL Express 검사 사용 안 함

이 값은 'true' 또는 'false'로만 설정될 수도 있습니다. 'true'로 설정되면 워크플로가 SQL Server Express 버전을 고려하지 않습니다.

아니요

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

아니요

예상 값

데이터베이스 구성 설정의 예상 값입니다. 적용 가능한 값 집합을 보려면 이 모니터의 기술 자료 문서 " 구성" 섹션을 참조하세요.

켜기

알림 생성

워크플로가 알림을 생성하는지를 정의합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

43200

제한 시간(초)

워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다.

300

Element properties:

TargetMicrosoft.SQLServer.2014.Database
Parent MonitorMicrosoft.SQLServer.2014.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: 통계 자동 작성 구성 오류
컴퓨터 "{2}"에 있는 SQL 인스턴스 "{1}"의 데이터베이스 "{0}"에 대한 통계 자동 작성 설정이 모범 사례에 따라 설정되지 않았습니다.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Database.Configuration.AutoCreateStat" Accessibility="Public" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="Microsoft.SQLServer.2014.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Database.Configuration.AutoCreateStat.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoCreateStat</ConfigValue>
<ExpectedValue>ON</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>