Compartir vía


Comando .show commands

.show commands devuelve una tabla con comandos de administración completados. Estos comandos están disponibles para consultar durante 30 días.

Nota:

Este comando es útil para investigar problemas de rendimiento, ya que muestra los recursos consumidos por cada comando de administración. Ver ejemplos.

Permisos

Un administrador de base de datos o un monitor de base de datos pueden ver cualquier comando que se haya invocado en su base de datos. Otros usuarios solo pueden ver sus comandos.

Sintaxis

.show commands

Devoluciones

La tabla de devolución tiene dos columnas con detalles de consumo de recursos de cada comando completado.

  • TotalCpu - El tiempo total del reloj de CPU (modo de usuario + modo kernel) consumido por este comando.
  • ResourceUtilization : contiene toda la información de uso de recursos relacionada con ese comando, incluido totalCpu.

El consumo de recursos del que se realiza el seguimiento incluye actualizaciones de datos y cualquier consulta asociada al comando de administrador actual. Actualmente, solo algunos de los comandos de administración están cubiertos por la tabla de comandos (.ingest, .set, .append, .set-or-replace, .set-or-append). Gradualmente, se agregan más comandos a la tabla de comandos.

Salida del ejemplo

ClientActivityId CommandType Texto Base de datos StartedOn LastUpdatedOn Duration State RootActivityId Usuario FailureReason Application Principal TotalCpu ResourceUtilization WorkloadGroup
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 Completado b965d809-3f3e-4f44-bd2b-5e1f49ac46c5 Id. de aplicación de 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
KE. Ejecutarcomando; 710e08ca-2cd3-4d2d-b7bd-2738d335aa50 DataIngestPull .ingest en MyTableName ... TestDB 2017-09-04 16:00:37.0915452 2017-09-04 16:04:37.2834555 00:04:00.1919103 Con error a8986e9e-943f-81b0270d6fae4 cooper@fabrikam.com Se ha eliminado la conexión de socket. 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 ExtensionesRebuild .merge async Operations ... DB2 2017-09-18 13:29:38.5945531 2017-09-18 13:29:39.9451163 00:00:01.3505632 Completado d5ebb755-d5df-4e94-b240-9accdf06c2d1 Id. de aplicación de 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.8906250"} internal

Ejemplos

Extracción de datos de la ResourceUtilization columna

Para acceder a una de las propiedades de la ResourceUtilization columna, llame a en ResourcesUtilization.PropertyName.

Nota:

ResourceUtilization es una columna dinámica. Para trabajar con sus valores, primero debe convertirlo en un tipo de datos específico. Use una función de conversión como tolong, toint, . totimespan

Por ejemplo:

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

Salida

StartedOn MemoryPeak TotalCpu Texto
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 ... | Proyecto...
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))

Consulta de la TotalCpu columna

Principales 10 consultas que consumen CPU en el último día.

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

Todas las consultas de las últimas 10 horas cuyo TotalCpu pasó 3 minutos.

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

Todas las consultas de las últimas 24 horas cuyo totalCpu pasó 5 minutos, agrupado por usuario y entidad de seguridad.

.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

Gráfico de tiempo: CPU media frente al percentil 95 frente a CPU máxima.

.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

Consulta de la MemoryPeak columna

Las 10 consultas principales del último día con los valores más altos MemoryPeak .

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

Diagrama de tiempo de memoria media frente al percentil 95 frente a memoria máxima.

.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