Монитор процента полных сканирований таблиц MySQL Server

Microsoft.MySQLServer.ManagedServer.Unix.FullTableScanPct.Monitor (UnitMonitor)

Knowledge Base article:

Сводка

Процент полных сканирований таблиц, выполненных в MySQL Server. При полном сканировании таблицы сервер последовательно проверяет каждую строку таблицы на соответствие условию. Для таблиц с небольшим числом строк полные сканирования могут выполняться довольно часто. Пороговое значение монитора анализируется путем усреднения значений, возвращаемых при опросе агента. При этом параметр "Число выборок" определяет число образцов, участвующих в вычислении среднего значения.

Причины

Неработоспособное состояние указывает на высокий процент полных сканирований таблиц. Полные сканирования таблиц могут выполняться для таблиц, содержащих менее 10 строк или короткие строки. Кроме того, они могут выполняться при сравнении индексированных столбцов с постоянными значениями.

Решения

Для устранения проблемы с высоким процентом сканирований таблиц попробуйте сделать следующее:

Конфигурация

Конфигурация по умолчанию

Параметр

Значение по умолчанию

Порог "предупреждение"

Более 80

Порог "ошибка"

Более 95

Число выборок

3

Для изменения значений определенных выше параметров для всех экземпляров или отдельных экземпляров и групп могут использоваться переопределения.

Element properties:

TargetMicrosoft.MySQLServer.ManagedServer.Unix
Parent MonitorMicrosoft.MySQLServer.RowOperationsPerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Полные сканирования таблиц MySQL Server
Текущий процент полных сканирований таблиц ({0} \%) для MySQL Server высок
RunAsDefault

Source Code:

<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>