Het percentage volledige tabelscans dat in de MySQL-server wordt uitgevoerd. Bij een volledige tabelscan wordt elke rij in de tabel opeenvolgend gecontroleerd op de geldigheid van een voorwaarde. Volledige tabelscans kunnen geregeld optreden op tabellen met een klein aantal rijen. De monitordrempelwaarde wordt geanalyseerd tegen het gemiddelde van de waarden die in peilingen aan de agent worden geretourneerd. De parameter Aantal steekproeven bepaalt het aantal steekproeven dat bij de berekening van het gemiddelde wordt opgenomen.
Een slechte status geeft aan dat het percentage volledige tabelscans hoog is. Volledige tabelscans kunnen optreden op tabellen met minder dan 10 rijen of met een korte rijlengte. Volledige tabelscans kunnen ook optreden als geïndexeerde kolommen worden vergeleken met constante waarden.
Als u een hoog percentage tabelscans wilt verhelpen, kunt u de volgende opties gebruiken:
Optimaliseer de MySQL-query's waarmee volledige tabelscans worden uitgevoerd
Werk de sleuteldistributies bij met de MySQL-opdracht ANALYZE TABLE tbl_name
Geef de optie voor MySQL in de opdracht FORCE INDEX op om handmatig het gebruik van het MySQL-optimalisatieprogramma voor de betrokken index te beëindigen
Wijzig de waarde variabele max_seeks_for_key zodanig dat deze is afgestemd op de vereiste zoekacties om gegevens op te halen.
Standaardconfiguratie
Parameter | Standaardwaarde |
Waarschuwingsdrempel | Groter dan 80 |
Drempelwaarde voor fouten | Groter dan 95 |
Aantal steekproeven | 3 |
Onderdrukkingen kunnen worden gebruikt om de hierboven gedefinieerde parameterwaarden te wijzigen voor alle exemplaren of voor specifieke exemplaren of groepen.
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>