Udostępnij za pośrednictwem


Polecenie .show

.show commands Zwraca tabelę z ukończonymi poleceniami zarządzania. Te polecenia są dostępne do wykonywania zapytań przez 30 dni.

Uwaga

To polecenie jest przydatne do badania problemów z wydajnością, ponieważ pokazuje zasoby używane przez każde polecenie zarządzania. Zobacz Przykłady.

Uprawnienia

Administrator bazy danych lub monitor bazy danych może wyświetlić dowolne polecenie, które zostało wywołane w bazie danych. Inni użytkownicy mogą wyświetlać tylko swoje polecenia.

Składnia

.show commands

Zwraca

Tabela zwracana zawiera dwie kolumny ze szczegółami użycia zasobów dla każdego ukończonego polecenia.

  • TotalCpu — Łączny czas zegara procesora CPU (tryb użytkownika i tryb jądra) używany przez to polecenie.
  • ResourceUtilization — Zawiera wszystkie informacje o użyciu zasobów związane z tym poleceniem, w tym TotalCpu.

Śledzone użycie zasobów obejmuje aktualizacje danych i dowolne zapytanie skojarzone z bieżącym poleceniem administratora. Obecnie tylko niektóre polecenia zarządzania są objęte tabelą poleceń (.ingest, .set, .append, .set-or-replace, ). .set-or-append Stopniowo do tabeli poleceń jest dodawanych więcej poleceń.

Przykładowe dane wyjściowe

ClientActivityId Typ polecenia Text baza danych Rozpoczęto LastUpdatedOn Czas trwania Stan RootActivityId User FailureReason Aplikacja Główne TotalCpu Zasób Grupa obciążeń
KD2RunCommand; a069f9e3-6062-4a0e-aa82-75a1b5e16fb4 ExtentsMerge .merge async Operations ... DB1 2017-09-05 11:08:07.5738569 2017-09-05 11:08:09.1051161 00:00:01.5312592 Ukończone b965d809-3f3e-4f44-bd2b-5e1f49ac46c5 Identyfikator aplikacji usługi AAD=5ba8cec2-9a70-e92c98cad651 Kusto.Azure.DM.Svc aadapp=5ba8cec2-9a70-e92c98cad651 00:00:03.5781250 { "ScanedExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { Memory": { "Misses": 2, "Hits": 20 }, "Disk": { "Misses": 2, "Hits": 0 } } , "MemoryPeak": 159620640, "TotalCpu": "00:00:03.5781250" } internal
KE. RunCommand; 710e08ca-2cd3-4d2d-b7bd-2738d335aa50 DataIngestPull .ingest into MyTableName ... TestDB 2017-09-04 16:00:37.0915452 2017-09-04 16:04:37.2834555 00:04:00.1919103 Niepowodzenie a8986e9e-943f-81b0270d6fae4 cooper@fabrikam.com Połączenie gniazda zostało usunięte. Kusto.Explorer aaduser=... 00:00:00 { "ScanedExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { "Memory": { "Misses": 0, Hits": 0 }, "Disk": { "Misses": 0, "Hits": 0 }, "MemoryPeak": 0, "TotalCpu": "00:00:00"} domyślna
KD2RunCommand; 97db47e6-93e2-4306-8b7d-670f2c3307ff ExtentsRebuild .merge async Operations ... DB2 2017-09-18 13:29:38.5945531 2017-09-18 13:29:39.9451163 00:00:01.3505632 Ukończone d5ebb755-d5df-4e94-b240-9accdf06c2d1 Identyfikator aplikacji usługi AAD=5ba8cec2-9a70-e92c98cad651 Kusto.Azure.DM.Svc aadapp=5ba8cec2-9a70-e92c98cad651 00:00:00.8906250 { "ScanedExtentsStatistics": { "MinDataScannedTime": null, "MaxDataScannedTime": null }, "CacheStatistics": { Memory": { "Misses": 0, "Hits": 1 }, "Disk": { "Misses": 0, "Hits": 0 }, "MemoryPeak": 88828560, "TotalCpu": "00:00:00.8906250"} internal

Przykłady

Wyodrębnianie danych z kolumny ResourceUtilization

Aby uzyskać dostęp do jednej z właściwości w kolumnieResourceUtilization, wywołaj metodę .ResourcesUtilizationPropertyName.

Uwaga

ResourceUtilization jest kolumną dynamiczną. Aby pracować z jego wartościami, należy najpierw przekonwertować go na określony typ danych. Użyj funkcji konwersji, takiej jak tolong, , tointtotimespan.

Na przykład:

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

Wyjście

Rozpoczęto 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 | summarize ... | 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))

Wykonywanie zapytań względem kolumny TotalCpu

10 najważniejszych zapytań zużywających procesor CPU w ciągu ostatniego dnia.

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

Wszystkie zapytania w ciągu ostatnich 10 godzin, których wartość TotalCpu minęła 3 minuty.

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

Wszystkie zapytania w ciągu ostatnich 24 godzin, których totalCpu minęło 5 minut, pogrupowane według użytkownika i podmiotu zabezpieczeń.

.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

Wykres czasowy: średni procesor CPU a 95. percentyl a maksymalny procesor 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

Wykonywanie zapytań względem kolumny MemoryPeak

10 pierwszych zapytań w ciągu ostatniego dnia z najwyższymi MemoryPeak wartościami.

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

Wykres czasowy średniego limitu pamięci względem 95. percentyla i maksymalnego elementu 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