Befehl ".show"
.show commands
gibt eine Tabelle mit abgeschlossenen Verwaltungsbefehlen zurück. Diese Befehle können 30 Tage lang abfragen.
Hinweis
Dieser Befehl ist nützlich, um Leistungsprobleme zu untersuchen, da er die von den einzelnen Verwaltungsbefehlen verbrauchten Ressourcen anzeigt. Vgl. Beispiele.
Berechtigungen
Ein Datenbankadministrator oder Datenbankmonitor kann jeden Befehl sehen, der für seine Datenbank aufgerufen wurde. Andere Benutzer können nur ihre Befehle sehen.
Syntax
.show
commands
Rückgabe
Die Rückgabetabelle enthält zwei Spalten mit Ressourcenverbrauchsdetails jedes abgeschlossenen Befehls.
TotalCpu
– Die gesamte CPU-Taktzeit (Benutzermodus + Kernelmodus), die von diesem Befehl verbraucht wird.ResourceUtilization
– Enthält alle Ressourcenverwendungsinformationen im Zusammenhang mit diesem Befehl, einschließlich totalCpu.
Der nachverfolgte Ressourcenverbrauch umfasst Datenupdates und alle Abfragen, die dem aktuellen Administratorbefehl zugeordnet sind.
Derzeit werden nur einige der Verwaltungsbefehle in der Befehlstabelle (.ingest
, , .set
.append
, .set-or-replace
, .set-or-append
) behandelt. Nach und nach werden der Befehlstabelle weitere Befehle hinzugefügt.
Beispielausgabe
ClientActivityId | CommandType | Text | Datenbank | StartedOn | LastUpdatedOn | Duration | State | RootActivityId | Benutzer | FailureReason | Anwendung | Prinzipal | TotalCpu | ResourceUtilization | WorkloadGroup |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
KD2RunCommand; a069f9e3-6062-4a0e-aa82-75a1b5e16fb4 | ErweiterungenMerge | Asynchrone .merge-Vorgänge ... | DB1 | 2017-09-05 11:08:07.5738569 | 2017-09-05 11:08:09.1051161 | 00:00:01.5312592 | Abgeschlossen | b965d809-3f3e-4f44-bd2b-5e1f49ac46c5 | AAD app ID=5ba8cec2-9a70-e92c98cad651 | Kusto.Azure.DM.Svc | aadapp=5ba8cec2-9a70-e92c98cad651 | 00:00:03.5781250 | { "ScannedExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { Memory": { "Misses": 2, "Hits": 20 }, "Disk": { "Misses": 2, "Hits": 0 } }, "MemoryPeak": 159620640, "TotalCpu": "00:00:03.5781250" } | internal | |
KE. Ausführenbefehl; 710e08ca-2cd3-4d2d-b7bd-2738d35aa50 | DataIngestPull | .ingest in MyTableName ... | TestDB | 2017-09-04 16:00:37.0915452 | 2017-09-04 16:04:37.2834555 | 00:04:00.1919103 | Fehler | a8986e9e-943f-81b0270d6fae4 | cooper@fabrikam.com | Die Socketverbindung wurde entfernt. | Kusto.Explorer | aaduser=... | 00:00:00 | { "ScannedExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { "Memory": { "Misses": 0, Hits": 0 }, "Disk": { "Misses": 0, "Hits": 0 } }, "MemoryPeak": 0, "TotalCpu": "00:00:00"} | default |
KD2RunCommand; 97db47e6-93e2-4306-8b7d-670f2c3307ff | ExtentsRebuild | Asynchrone .merge-Vorgänge ... | DB2 | 2017-09-18 13:29:38.5945531 | 2017-09-18 13:29:39.9451163 | 00:00:01.3505632 | Abgeschlossen | d5ebb755-d5df-4e94-b240-9accdf06c2d1 | AAD app ID=5ba8cec2-9a70-e92c98cad651 | Kusto.Azure.DM.Svc | aadapp=5ba8cec2-9a70-e92c98cad651 | 00:00:00.8906250 | { "ScannedExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { Memory": { "Misses": 0, "Hits": 1 }, "Disk": { "Misses": 0, "Hits": 0 } }, "MemoryPeak": 88828560, "TotalCpu": "00:00:00.8906250"} | internal |
Beispiele
Extrahieren von Daten aus der ResourceUtilization
Spalte
Um auf eine der Eigenschaften in der ResourceUtilization
Spalte zuzugreifen, rufen Sie auf ResourcesUtilization
auf.PropertyName.
Hinweis
ResourceUtilization
ist eine dynamische Spalte. Um mit den zugehörigen Werten zu arbeiten, sollten Sie sie zuerst in einen bestimmten Datentyp konvertieren. Verwenden Sie eine Konvertierungsfunktion wie tolong
, toint
, totimespan
.
Zum Beispiel:
.show commands
| where CommandType == "TableAppend"
| where StartedOn > ago(1h)
| extend MemoryPeak = tolong(ResourcesUtilization.MemoryPeak)
| top 3 by MemoryPeak desc
| project StartedOn, MemoryPeak, TotalCpu, Text
Ausgabe
StartedOn | MemoryPeak | TotalCpu | Text |
---|---|---|---|
2017-09-28 12:11:27.8155381 | 800396032 | 00:00:04.5312500 | .append Server_Boots <| let bootStartsSourceTable = SessionStarts; ... |
2017-09-28 11:21:26.7304547 | 750063056 | 00:00:03.8218750 | .set-or-append WebUsage <| database('CuratedDB'). WebUsage_v2 | zusammenfassen ... | Projekt... |
2017-09-28 12:16:17.4762522 | 676289120 | 00:00:00.0625000 | .set-or-append AtlasClusterEventStats with(...) <| Atlas_Temp(datetime(2017-09-28 12:13:28.7621737), datetime(2017-09-28 12:14:28.8168492)) |
Abfragen der TotalCpu
Spalte
Top 10 CPU-verbrauchende Abfragen am letzten Tag.
.show commands
| where StartedOn > ago(1d)
| top 10 by TotalCpu
| project StartedOn, CommandType, ClientActivityId, TotalCpu
Alle Abfragen in den letzten 10 Stunden, deren TotalCpu 3 Minuten verstrichen ist.
.show commands
| where StartedOn > ago(10h) and TotalCpu > 3m
| project StartedOn, CommandType, ClientActivityId, TotalCpu
| order by TotalCpu
Alle Abfragen der letzten 24 Stunden, deren TotalCpu 5 Minuten dauerte, gruppiert nach Benutzer und Prinzipal.
.show commands
| where StartedOn > ago(24h)
| summarize TotalCount=count(), CountAboveThreshold=countif(TotalCpu > 2m), AverageCpu = avg(TotalCpu), MaxTotalCpu=max(TotalCpu), (50th_Percentile_TotalCpu, 95th_Percentile_TotalCpu)=percentiles(TotalCpu, 50, 95) by User, Principal
| extend PercentageAboveThreshold = strcat(substring(CountAboveThreshold * 100 / TotalCount, 0, 5), "%")
| order by CountAboveThreshold desc
| project User, Principal, CountAboveThreshold, TotalCount, PercentageAboveThreshold, MaxTotalCpu, AverageCpu, 50th_Percentile_TotalCpu, 95th_Percentile_TotalCpu
Zeitdiagramm: Durchschnittliche CPU im Vergleich zum 95. Perzentil im Vergleich zur maximalen CPU.
.show commands
| where StartedOn > ago(1d)
| summarize MaxCpu_Minutes=max(TotalCpu)/1m, 95th_Percentile_TotalCpu_Minutes=percentile(TotalCpu, 95)/1m, AverageCpu_Minutes=avg(TotalCpu)/1m by bin(StartedOn, 1m)
| render timechart
Abfragen der MemoryPeak
Spalte
Top 10 Abfragen am letzten Tag mit den höchsten MemoryPeak
Werten.
.show commands
| where StartedOn > ago(1d)
| extend MemoryPeak = tolong(ResourcesUtilization.MemoryPeak)
| project StartedOn, CommandType, ClientActivityId, TotalCpu, MemoryPeak
| top 10 by MemoryPeak
Zeitdiagramm von Average MemoryPeak vs. 95. Perzentil vs. Max MemoryPeak.
.show commands
| where StartedOn > ago(1d)
| project MemoryPeak = tolong(ResourcesUtilization.MemoryPeak), StartedOn
| summarize Max_MemoryPeak=max(MemoryPeak), 95th_Percentile_MemoryPeak=percentile(MemoryPeak, 95), Average_MemoryPeak=avg(MemoryPeak) by bin(StartedOn, 1m)
| render timechart
Verwandte Inhalte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für