Поделиться через


Команда .show commands

.show commands возвращает таблицу с завершенными командами управления. Эти команды доступны для запроса в течение 30 дней.

Примечание.

Эта команда полезна для изучения проблем с производительностью, так как она показывает ресурсы, потребляемые каждой командой управления. См. примеры.

Разрешения

Администратор базы данных или монитор базы данных могут видеть любую команду, вызванную в базе данных. Другие пользователи могут видеть только свои команды.

Синтаксис

.show commands

Возвраты

Возвращаемая таблица содержит два столбца с сведениями о потреблении ресурсов каждой завершенной команды.

  • TotalCpu — общее время ЦП (режим пользователя и режим ядра), используемое этой командой.
  • ResourceUtilization — Содержит все сведения об использовании ресурсов, связанных с этой командой, включая TotalCpu.

Потребление ресурсов, отслеживаемое, включает обновления данных и любой запрос, связанный с текущей командой администратора. В настоящее время только некоторые команды управления охватываются таблицей команд (.ingest,, .set, .append, .set-or-replace). .set-or-append Постепенно в таблицу команд добавляются дополнительные команды.

Пример результата

ClientActivityId CommandType Текст База данных StartedOn LastUpdatedOn Длительность Штат RootActivityId User FailureReason Приложение Субъект TotalCpu ResourceUtilization WorkloadGroup
KD2RunCommand; a069f9e3-6062-4a0e-aa82-75a1b5e16fb4 ExtentsMerge Операции асинхронного слияния ... DB1 2017-09-05 11:08:07.5738569 2017-09-05 11:08:09.1051161 00:00:01.5312592 Завершено b965d809-3f3e-4f44-bd2b-5e1f49ac46c5 Идентификатор приложения AAD=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
КЕ. RunCommand; 710e08ca-2cd3-4d2d-b7bd-2738d335aa50 DataIngestPull .ingest в MyTableName ... TestDB 2017-09-04 16:00:37.0915452 2017-09-04 16:04:37.2834555 00:04:00.1919103 Неудачно a8986e9e9e-943f-81b0270d6fae4 cooper@fabrikam.com Подключение сокета было удалено. 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:00"} default
KD2RunCommand; 97db47e6-93e2-4306-8b7d-670f2c3307ff ExtentsRebuild Операции асинхронного слияния ... DB2 2017-09-18 13:29:38.5945531 2017-09-18 13:29:39.9451163 00:00:01.3505632 Завершено d5ebb755-d5df-4e94-b240-9accdf06c2d1 Идентификатор приложения AAD=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:00.8906250"} internal

Примеры

Извлечение данных из столбца ResourceUtilization

Чтобы получить доступ к одному из свойств в столбцеResourceUtilization, вызовите .ResourcesUtilizationPropertyName.

Примечание.

ResourceUtilization — динамический столбец. Чтобы работать со своими значениями, сначала необходимо преобразовать его в определенный тип данных. Используйте функцию преобразования, например tolong, toint. totimespan

Например:

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

Выходные данные

StartedOn MemoryPeak TotalCpu Текст
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 | суммирование ... | проект...
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))

Запрос столбца TotalCpu

Первые 10 ЦП, потребляющих запросы за последний день.

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

Все запросы за последние 10 часов, чей TotalCpu прошел 3 минуты.

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

Все запросы за последние 24 часа, чей TotalCpu прошел 5 минут, сгруппированных пользователем и субъектом.

.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

Timechart: средняя загрузка ЦП и 95-й процентиль и максимальная загрузка ЦП.

.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

Запрос столбца MemoryPeak

Первые 10 запросов за последний день с самыми высокими MemoryPeak значениями.

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

Диаграмма времени среднего объема памяти и 95-го процентиля и 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