Procentandelen fullständiga tabellgenomsökningar som utförts i SQL-servern. Vid fullständiga tabellgenomsökningar kontrollerar servern sekventiellt varje rad i tabellen för att avgöra om ett tillstånd är giltigt. Fullständiga tabellgenomsökningar kan inträffa ofta för tabeller med ett lågt antal rader. Tröskelvärdet för övervakaren analyseras mot ett medeltal av de värden som returneras vid avsökningar till agenten, där parametern Antal prover styr antalet prov som tas med vid beräkning av medelvärdet.
Ett feltillstånd visar att procentandelen för fullständiga tabellgenomsökningar är hög. Fullständiga tabellgenomsökningar kan inträffa för tabeller med färre än 10 rader eller med kort radlängd. Fullständiga tabellgenomsökningar kan även inträffa vid jämförelse av indexerade kolumner och konstantvärden.
Försök med följande för att åtgärda en hög procentandel tabellgenomsökningar:
Optimera den MySQL-fråga som kör fullständiga tabellgenomsökningar
Använd MySQL-kommandot "ANALYZE TABLE tbl_name" för att uppdatera nyckeldistributioner
Använd MySQL-alternativet i kommandot "FORCE INDEX" för att manuellt inaktivera MySQL-optimeraren för ett visst index
Ändra variabeln "max_seeks_for_key’" till ett värde som återspeglar de sökningar som krävs för att hämta data.
Standardkonfiguration
Parameter | Standardvärde |
Varningströskelvärde | Större än 80 |
Feltröskelvärde | Större än 95 |
Antal insamlingar | 3 |
Åsidosättningar kan användas för att ändra parametervärden som har definierats ovan för alla instanser eller för specifika instanser eller grupper.
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>