Delen via


Opdracht .show commands

.show commands retourneert een tabel met voltooide beheeropdrachten. Met deze opdrachten kunt u 30 dagen query's uitvoeren.

Notitie

Deze opdracht is handig voor het onderzoeken van prestatieproblemen, omdat de resources worden weergegeven die door elke beheeropdracht worden gebruikt. Zie Voorbeelden.

Machtigingen

Een databasebeheerder of databasemonitor kan elke opdracht zien die is aangeroepen voor de database. Andere gebruikers kunnen alleen hun opdrachten zien.

Syntax

.show commands

Retouren

De retourtabel heeft twee kolommen met details over het verbruik van resources van elke voltooide opdracht.

  • TotalCpu - De totale CPU-kloktijd (gebruikersmodus + kernelmodus) die door deze opdracht wordt verbruikt.
  • ResourceUtilization - Bevat alle informatie over resourcegebruik met betrekking tot die opdracht, inclusief de TotalCpu.

Het resourceverbruik dat wordt bijgehouden, omvat gegevensupdates en query's die zijn gekoppeld aan de huidige beheerdersopdracht. Op dit moment worden slechts enkele van de beheeropdrachten behandeld door de opdrachtentabel (.ingest, .set, .append, , .set-or-replace, ). .set-or-append Geleidelijk worden er meer opdrachten toegevoegd aan de tabel opdrachten.

Voorbeelduitvoer

ClientActivityId Commandtype Tekst Database Gestart op LastUpdatedOn Duur Staat RootActivityId Gebruiker FailureReason Toepassing Principal TotalCpu ResourceGEBRUIK WorkloadGroup
KD2RunCommand; a069f9e3-6062-4a0e-aa82-75a1b5e16fb4 ExtentsMerge .merge asynchrone bewerkingen ... DB1 2017-09-05 11:08:07.5738569 2017-09-05 11:08:09.1051161 00:00:01.5312592 Voltooid b965d809-3f3e-4f44-bd2b-5e1f49ac46c5 AAD-app-id=5ba8cec2-9a70-e92c98cad651 Kusto.Azure.DM.Svc aadapp=5ba8cec2-9a70-e92c98cad651 00:00:03.5781250 { "ScandExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { Memory": { "Misses": 2, "Hits": 20 }, "Disk": { "Misses": 2, "Hits": 0 } }, "MemoryPeak": 159620640, "TotalCpu": "00:00:03.5781250" } Interne
KE. Runcommand; 710e08ca-2cd3-4d2d-b7bd-2738d335aa50 DataIngestPull .ingest in MyTableName ... TestDB 2017-09-04 16:00:37.0915452 2017-09-04 16:04:37.2834555 00:04:00.1919103 Mislukt a8986e9e-943f-81b0270d6fae4 cooper@fabrikam.com De socketverbinding is verwijderd. Kusto.Explorer aaduser=... 00:00:00 { "ScandExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { "Memory": { "Misses": 0, Hits": 0 }, "Disk": { "Misses": 0, "Hits": 0 } }, "MemoryPeak": 0, "TotalCpu": "00:00:00"} standaardinstelling
KD2RunCommand; 97db47e6-93e2-4306-8b7d-670f2c3307ff ExtentsRebuild .merge asynchrone bewerkingen ... DB2 2017-09-18 13:29:38.5945531 2017-09-18 13:29:39.9451163 00:00:01.3505632 Voltooid d5ebb755-d5df-4e94-b240-9accdf06c2d1 AAD-app-id=5ba8cec2-9a70-e92c98cad651 Kusto.Azure.DM.Svc aadapp=5ba8cec2-9a70-e92c98cad651 00:00:00.8906250 { "ScandExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { Memory": { "Misses": 0, "Hits": 1 }, "Disk": { "Misses": 0, "Hits": 0 } }, "MemoryPeak": 88828560, "TotalCpu": "00:00:00.8906250"} Interne

Voorbeelden

Gegevens extraheren uit de ResourceUtilization kolom

Als u toegang wilt krijgen tot een van de eigenschappen in de ResourceUtilization kolom, roept u aan op ResourcesUtilization.PropertyName.

Notitie

ResourceUtilization is een dynamische kolom. Als u met de bijbehorende waarden wilt werken, moet u deze eerst converteren naar een specifiek gegevenstype. Gebruik een conversiefunctie zoals tolong, toint, totimespan.

Bijvoorbeeld:

.show commands
| where CommandType == "TableAppend"
| where StartedOn > ago(1h)
| extend MemoryPeak = tolong(ResourcesUtilization.MemoryPeak)
| top 3 by MemoryPeak desc
| project StartedOn, MemoryPeak, TotalCpu, Text

Uitvoer

Gestart op MemoryPeak TotalCpu Tekst
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 | samenvatten ... | Project...
2017-09-28 12:16:17.4762522 676289120 00:00:00.0625000 .set-or-append AtlasClusterEventStats met(...) <| Atlas_Temp(datetime(28-09-2017 12:13:28.7621737), datetime(28-09-2017 12:14:28.8168492))

Query uitvoeren op de TotalCpu kolom

Top 10 CPU-verbruik query's in de afgelopen dag.

.show commands
| where StartedOn > ago(1d)
| top 10 by TotalCpu
| project StartedOn, CommandType, ClientActivityId, TotalCpu 

Alle query's in de afgelopen 10 uur waarvan TotalCpu 3 minuten is verstreken.

.show commands
| where StartedOn > ago(10h) and TotalCpu > 3m
| project StartedOn, CommandType, ClientActivityId, TotalCpu 
| order by TotalCpu 

Alle query's in de afgelopen 24 uur waarvan TotalCpu 5 minuten is verstreken, gegroepeerd op gebruiker en principal.

.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

Tijddiagram: gemiddelde CPU versus 95e percentiel versus maximale 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

Query uitvoeren op de MemoryPeak kolom

Top 10 query's in de afgelopen dag met de hoogste MemoryPeak waarden.

.show commands
| where StartedOn > ago(1d)
| extend MemoryPeak = tolong(ResourcesUtilization.MemoryPeak)
| project StartedOn, CommandType, ClientActivityId, TotalCpu, MemoryPeak
| top 10 by MemoryPeak  

Tijddiagram van Average MemoryPeak versus 95th Percentile versus 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