통계를 비동기적으로 자동 업데이트 구성

Microsoft.SQLServer.Linux.Monitor.Database.AutoUpdateStatAsyncConfiguration (UnitMonitor)

데이터베이스의 통계를 비동기적으로 자동 업데이트 설정을 모니터링합니다. 참고: 이 모니터는 기본적으로 사용하지 않도록 설정되어 있습니다. 필요한 경우 재정의를 통해 사용하도록 설정하세요.

Knowledge Base article:

요약

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

구성

통계를 비동기적으로 자동 업데이트 설정이 ON이면 AUTO_UPDATE_STATISTICS 옵션에 대한 통계 업데이트를 비동기로 지정합니다. 쿼리 최적화 프로그램은 쿼리를 컴파일하기 전에 통계 업데이트가 완료될 때까지 기다리지 않습니다. 이 옵션을 ON으로 설정해도 AUTO_UPDATE_STATISTICS가 ON으로 설정되어 있지 않으면 영향을 주지 않습니다.

AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}

원인

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

이 데이터베이스 옵션은 기존 응용 프로그램과의 호환성을 위해 기본적으로 OFF로 설정되어 있습니다. 쿼리는 통계 업데이트를 기다리거나 차단하지 않으므로 쿼리가 이전 통계로 컴파일 및 실행되는 경우 성능이 일시적으로 변경될 수 있습니다. 통계의 업데이트가 완료된 후에는 다음 실행 전에 같은 쿼리가 업데이트된 통계에 대해 다시 컴파일됩니다. 그러나 통계가 업데이트 중일 때는 쿼리가 이전 통계에 대해 컴파일되었으므로 쿼리에 일시적으로 성능 문제가 발생할 수 있습니다.

전반적으로 차단 및 대기를 최소화하는 ASYNC 업데이트가 대부분의 응용 프로그램에 가장 적합합니다. ASYNC 업데이트 옵션을 ON으로 설정하고 응용 프로그램에 맞으면 이 유닛 모니터를 비활성화하세요.

해결 방법

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

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

외부

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

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

재정의 가능한 매개 변수

이름

설명

기본값

경고 우선 순위

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

보통

경고 심각도

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

경고

사용

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

아니요

예상 값

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

끄기

알림 생성

워크플로에서 알림을 생성하는지 여부를 정의합니다.

간격(초)

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

43200

동기화 시간

24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다.

 

시간 제한(초)

여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다.

300

데이터베이스 연결 시간 제한(초)

워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다.

15

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Database.AutoUpdateStatAsyncConfiguration" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Microsoft.SQLServer.Linux.Rollup.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Database.AutoUpdateStatAsyncConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConfigName>AutoUpdateStatAsync</ConfigName>
<ExpectedValue>OFF</ExpectedValue>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>