|
Kategorie: Server Programme: Performance und Tuning
Query Processing Metrics, QP Metrics, Query Metrics
Die Query Processing Metrics oder einfach nur QP Metrics
ist ein mit ASE Version 15.0 neu eingeführtes feature.
QP Metrics erkennt und vergleicht empirisch ermittelte metrische Werte
beim Absetzen einer ad-hoc
Query
oder einer
Stored Procedure.
Mit der Query Processing Metrics lassen sich...
-
die Performance einer Query messen.
-
Informationen über logische I/O Schreibvorgänge (logical I/O reads) ermitteln.
-
Informationen über physikalische I/O Schreibvorgänge (physical I/O reads) ermitteln.
-
CPU Laufzeiten einer Query in Millisekunden ermitteln.
-
häufig ausgeführte Queries identifizieren. Ermittelt also wie oft eine Query ausgeführt wurde.
-
zählen wie oft eine Query wegen Ressourcenengässen vom
Resource Governor
unterbrochen wurde.
Performance-Engpässe, Bottlenecks erkennen.
Jede Datenbank hält ihre eigenen gesammelten QP Metrics Daten in dem
View
sysquerymetrics
vor. Jeder View wird aus der
Tabelle
sysqueryplans
erstellt, die in jeder Datenbank vorhanden ist. Die Query Processing Metrics
ist also eine Erweiterung des
Abstract Query Plans
und wirkt sich damit nicht negativ auf laufende Überwachungsprozesse der
MDA-Tabellen
oder der Stored Procedure
sp_sysmon
aus.
Die Query Processing Metrics kann entweder mit der Stored Procedure
sp_configure enable metrics capture , 1
auf Serverlevel oder mit
auf Sessionlevel aktiviert werden. Die QP Metrics für ad-hoc abgesetzte Queries werden
direkt in die entsprechenden Tabellen geschrieben, während die QP Metrics von Stored
Procedures zunächst nur im
procedure cache
gespeichert werden und erst durch den Aufruf der Stored Procedures
sp_metrics 'flush'
oder
sp_flushmetrics
in die Tabellen geschrieben werden.
Dabei wird jede Metrics mit drei Werten für Minimum, Maximum
und Durchschnitt gespeichert.
Die gesammelten Daten von QP Metrics werden in dem
View
sysquerymetrics
abgelegt und können über ein
select
Statement abgefragt werden.
Wie man das Statement/die Query mit dem höchsten Ressourcenverbrauch findet
Im Allgemeinen sind die Queries mit dem höchsten logical I/O ,
physical I/O , CPU execution time oder
elapsed time die größten Ressourcenverschwender und
stellen damit mögliche Tuningkandidaten dar.
Query mit dem höchsten logical I/O Verbrauch finden
select lio_avg, rtrim(qtext) as sql_query_text from sysquerymetrics order by lio_avg
Query mit dem höchsten physical I/O Verbrauch finden
select pio_avg, rtrim(qtext) as sql_query_text from sysquerymetrics order by pio_avg
Query mit der längsten Laufzeit (execution time) finden
select exec_avg, rtrim(qtext) as sql_query_text from sysquerymetrics order by exec_avg
Query finden die am häufigsten ausgeführt werden
select elap_avg, cnt, rtrim(qtext) as sql_query_text from sysquerymetrics order by cnt
Backup der bestehenden QP Metrics / Performance von Queries vergleichen
Insbesondere beim einer Migration auf einen neuen ASE-Server kann es vorkommen,
dass die Kunden die Antwortzeiten für Queries als langsamer empfinden, also
Performanceeinbusen für bestimmte Query-Statements beklagen. Darum empfiehlt
es sich die QP Metrics Daten zu sichern, also ein Backup anzulegen. So kann man
nach einem Upgrade direkt die Performance der einzelnen Queries vergleichen.
Dazu werden die Daten auf dem alten Server in eine so genannte backup group
kopiert. Das wird mit der Stored Procedure
sp_metrics 'backup', '@gid'
gemacht. Wobei '@gid' die Ziffer der backup group darstellt. Also beispielsweise:
Anschließend schaltet man auf dem neuen Server mit
sp_configure enable metrics capture , 1
die Speicherung der QP Metrics Daten ein.
SQL von verschlüsselten Objekten ermitteln
Achtung: So wie
sp_hidetext
den
Quelltext
eines
Objekts
verschlüsselt, so kann QP Metrics verwendet werden, um sich das
SQL
eines verschlüsselten Objekts anzeigen zu lassen.
Siehe auch:
dbcc traceon 311,
set metrics_capture,
set plan for show_execio_xml,
set statistics plancost,
sp_configure "enable metrics capture",
sp_configure "metrics lio max",
sp_configure "metrics pio max",
sp_configure "metrics elap max",
sp_configure "metrics exec max"
und
Statistics time
sowie
Statistics io.
|