Share via


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