MySQL 서버에서 수행되는 전체 테이블 검색의 비율입니다. 서버에서 테이블의 각 행에 대한 조건의 유효성을 순서대로 확인할 때 전체 테이블 검색이 수행됩니다. 전체 테이블 검색은 행 수가 적은 테이블에서 자주 수행될 수 있습니다. 모니터 임계값은 에이전트에 대한 폴링에 반환된 평균 값에 대해 분석됩니다. 여기서 샘플 수 매개 변수가 평균 계산에 포함된 샘플 수를 제어합니다.
비정상 상태는 전체 테이블 검색의 비율이 높음을 나타냅니다. 전체 테이블 검색은 행 수가 10개 미만이거나 행 길이가 짧은 테이블에서 수행될 수 있습니다. 전체 테이블 검색은 인덱싱된 열을 상수 값과 비교할 때도 수행될 수 있습니다.
높은 테이블 검색 비율을 해결하려면 다음을 시도합니다.
전체 테이블 검색을 실행 중인 MySQL 쿼리 최적화
MySQL 명령 “ANALYZE TABLE tbl_name”을 사용하여 키 배포 업데이트
명령 “FORCE INDEX”에서 MySQL 옵션을 사용하여 지정된 인덱스에 대한 MySQL 최적화 프로그램을 수동으로 옵트아웃(opt out)
변수 ‘max_seeks_for_key’를 데이터 검색에 필요한 조회를 반영하는 값으로 변경
기본 구성
매개 변수 | 기본값 |
경고 임계값 | 80보다 큼 |
오류 임계값 | 95보다 큼 |
샘플 수 | 3 |
모든 인스턴스나 특정 인스턴스 또는 그룹에 대해 위에서 정의한 매개 변수 값을 변경하는 데 재정의를 사용할 수 있습니다.
Target | Microsoft.MySQLServer.ManagedServer.Unix | ||
Parent Monitor | Microsoft.MySQLServer.RowOperationsPerformanceRollup | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.FullTableScanPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.RowOperationsPerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.FullTableScanPct.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="StatusOK" ID="UnderThreshold"/>
<OperationalState HealthState="Warning" MonitorTypeStateID="StatusWarning" ID="OverWarningThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="StatusError" ID="OverErrorThreshold"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/MySQL_ServerStatistics?__cimnamespace=root/mysql</Uri>
<WSManFilter/>
<ObjectName>MySQL Server</ObjectName>
<CounterName>Full Table Scan Pct</CounterName>
<InstanceXPath>/DataItem/WsManData/*[local-name(.)='MySQL_ServerStatistics']/*[local-name(.)='InstanceID']</InstanceXPath>
<InstanceName>$Target/Property[Type="Microsoft.MySQLServer.Installation"]/InstanceID$</InstanceName>
<Value>$Data/WsManData/*[local-name(.)='MySQL_ServerStatistics']/*[local-name(.)='FullTableScanPct']$</Value>
<WarningThreshold>80</WarningThreshold>
<ErrorThreshold>95</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>