sys.dm_exec_query_stats (Transact-SQL)
van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Retourneert statistische prestatiestatistieken voor queryplannen in de cache in SQL Server. De weergave bevat één rij per query-instructie in het cacheplan en de levensduur van de rijen is gekoppeld aan het plan zelf. Wanneer een plan uit de cache wordt verwijderd, worden de bijbehorende rijen uit deze weergave verwijderd.
De resultaten van sys.dm_exec_query_stats
kunnen variëren met elke uitvoering, omdat de gegevens alleen voltooide query's weerspiegelen en niet de gegevens die nog in de vlucht zijn.
Als u deze DMV wilt aanroepen vanuit een toegewezen SQL-pool in Azure Synapse Analytics of Analytics Platform System (PDW), gebruikt u de naam sys.dm_pdw_nodes_exec_query_stats
. Gebruik sys.dm_exec_query_stats
voor een serverloze SQL-pool.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
sql_handle |
varbinary(64) | Een token waarmee de batch of opgeslagen procedure waarvan de query deel uitmaakt, uniek wordt geïdentificeerd.sql_handle , samen met statement_start_offset en statement_end_offset , kan worden gebruikt om de SQL-tekst van de query op te halen door de sys.dm_exec_sql_text dynamische beheerfunctie aan te roepen. |
statement_start_offset |
Geeft in bytes, beginnend met 0, de beginpositie van de query aan die de rij in de tekst van de batch of het persistente object beschrijft. | |
statement_end_offset |
Geeft in bytes, te beginnen met 0, de eindpositie van de query aan die in de rij wordt beschreven in de tekst van de batch of het persistente object. Voor versies vóór SQL Server 2014 (12.x) geeft een waarde van -1 het einde van de batch aan. Volgopmerkingen worden niet meer opgenomen. | |
plan_generation_num |
grote | Een volgnummer dat kan worden gebruikt om na een hercompilatie onderscheid te maken tussen exemplaren van plannen. |
plan_handle |
varbinary(64) | Een token dat een queryuitvoeringsplan op unieke wijze identificeert voor een batch die is uitgevoerd en het bijbehorende plan zich in de plancache bevindt of momenteel wordt uitgevoerd. Deze waarde kan worden doorgegeven aan de sys.dm_exec_query_plan dynamische beheerfunctie om het queryplan te verkrijgen. Altijd 0x000 wanneer een systeemeigen gecompileerde opgeslagen procedure query's uitvoert op een tabel die is geoptimaliseerd voor geheugen. |
creation_time |
datum/tijd- | Tijdstip waarop het plan is gecompileerd. De tijd wordt vastgelegd in de huidige tijdzone. |
last_execution_time |
datum/tijd- | Laatste keer waarop het plan werd uitgevoerd. De tijd wordt vastgelegd in de huidige tijdzone. |
execution_count |
grote | Aantal keren dat het plan is uitgevoerd sinds het voor het laatst is gecompileerd. |
total_worker_time |
grote | Totale hoeveelheid CPU-tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), die is verbruikt door uitvoeringen van dit plan sinds het is gecompileerd. Voor systeemeigen gecompileerde opgeslagen procedures is total_worker_time mogelijk niet nauwkeurig als veel uitvoeringen minder dan 1 milliseconden duren. |
last_worker_time |
grote | CPU-tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), die de laatste keer dat het plan werd uitgevoerd, werd verbruikt. 1 |
min_worker_time |
grote | Minimale CPU-tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), dat dit plan ooit heeft verbruikt tijdens één uitvoering. 1 |
max_worker_time |
grote | Maximale CPU-tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), dat dit plan ooit heeft verbruikt tijdens één uitvoering. 1 |
total_physical_reads |
grote | Het totale aantal fysieke leesbewerkingen uitgevoerd door uitvoeringen van dit plan sinds deze is gecompileerd. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
last_physical_reads |
grote | Het aantal fysieke leesbewerkingen dat de laatste keer is uitgevoerd toen het plan werd uitgevoerd. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
min_physical_reads |
grote | Minimaal aantal fysieke leesbewerkingen dat dit plan ooit heeft uitgevoerd tijdens één uitvoering. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
max_physical_reads |
grote | Maximum aantal fysieke leesbewerkingen dat dit plan ooit heeft uitgevoerd tijdens één uitvoering. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
total_logical_writes |
grote | Het totale aantal logische schrijfbewerkingen uitgevoerd door uitvoeringen van dit plan sinds deze is gecompileerd. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
last_logical_writes |
grote | Aantal bufferpoolpagina's die vuil zijn tijdens de meest recent voltooide uitvoering van het plan. Nadat een pagina is gelezen, wordt de pagina alleen vuil wanneer deze voor het eerst wordt gewijzigd. Wanneer een pagina vuil wordt, wordt dit getal verhoogd. Latere wijzigingen van een reeds vuile pagina hebben geen invloed op dit nummer. Dit nummer 0 altijd bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
min_logical_writes |
grote | Minimaal aantal logische schrijfbewerkingen dat dit plan ooit heeft uitgevoerd tijdens één uitvoering. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
max_logical_writes |
grote | Maximum aantal logische schrijfbewerkingen dat dit plan ooit heeft uitgevoerd tijdens één uitvoering. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
total_logical_reads |
grote | Totaal aantal logische leesbewerkingen uitgevoerd door uitvoeringen van dit plan sinds deze is gecompileerd. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
last_logical_reads |
grote | Het aantal logische leesbewerkingen dat de laatste keer is uitgevoerd toen het plan werd uitgevoerd. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
min_logical_reads |
grote | Minimaal aantal logische leesbewerkingen dat dit plan ooit heeft uitgevoerd tijdens één uitvoering. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
max_logical_reads |
grote | Maximum aantal logische leesbewerkingen dat dit plan ooit heeft uitgevoerd tijdens één uitvoering. Altijd 0 bij het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen. |
total_clr_time |
grote | Tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), verbruikt in CLR-objecten (Common Language Runtime) van Microsoft .NET Framework door uitvoeringen van dit plan sinds het is gecompileerd. De CLR-objecten kunnen worden opgeslagen in procedures, functies, triggers, typen en aggregaties. |
last_clr_time |
grote | Tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden) die wordt verbruikt door uitvoering binnen .NET Framework CLR-objecten tijdens de laatste uitvoering van dit plan. De CLR-objecten kunnen worden opgeslagen in procedures, functies, triggers, typen en aggregaties. |
min_clr_time |
grote | Minimale tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), dat dit plan ooit in .NET Framework CLR-objecten heeft verbruikt tijdens één uitvoering. De CLR-objecten kunnen worden opgeslagen in procedures, functies, triggers, typen en aggregaties. |
max_clr_time |
grote | Maximale tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), dat dit plan ooit in de .NET Framework CLR heeft verbruikt tijdens één uitvoering. De CLR-objecten kunnen worden opgeslagen in procedures, functies, triggers, typen en aggregaties. |
total_elapsed_time |
grote | Totale verstreken tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), voor voltooide uitvoeringen van dit plan. |
last_elapsed_time |
grote | Verstreken tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), voor de meest recent voltooide uitvoering van dit plan. |
min_elapsed_time |
grote | Minimale verstreken tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), voor elke voltooide uitvoering van dit plan. |
max_elapsed_time |
grote | Maximale verstreken tijd, gerapporteerd in microseconden (maar alleen nauwkeurig tot milliseconden), voor elke voltooide uitvoering van dit plan. |
query_hash |
Binary(8) | Binaire hashwaarde die wordt berekend op de query en wordt gebruikt om query's met vergelijkbare logica te identificeren. U kunt de query-hash gebruiken om het geaggregeerde resourcegebruik te bepalen voor query's die alleen verschillen per letterlijke waarden. |
query_plan_hash |
binary(8) | Binaire hashwaarde berekend op het queryuitvoeringsplan en wordt gebruikt om vergelijkbare queryuitvoeringsplannen te identificeren. U kunt hash van het queryplan gebruiken om de cumulatieve kosten van query's met vergelijkbare uitvoeringsplannen te vinden. Altijd 0x000 wanneer een systeemeigen gecompileerde opgeslagen procedure query's uitvoert op een tabel die is geoptimaliseerd voor geheugen. |
total_rows |
grote | Het totale aantal rijen dat door de query wordt geretourneerd. Kan niet null zijn. Altijd 0 wanneer een systeemeigen gecompileerde opgeslagen procedure query's uitvoert op een tabel die is geoptimaliseerd voor geheugen. |
last_rows |
grote | Aantal rijen dat wordt geretourneerd door de laatste uitvoering van de query. Kan niet null zijn. Altijd 0 wanneer een systeemeigen gecompileerde opgeslagen procedure query's uitvoert op een tabel die is geoptimaliseerd voor geheugen. |
min_rows |
grote | Minimaal aantal rijen dat door de query is geretourneerd tijdens één uitvoering. Kan niet null zijn. Altijd 0 wanneer een systeemeigen gecompileerde opgeslagen procedure query's uitvoert op een tabel die is geoptimaliseerd voor geheugen. |
max_rows |
grote | Het maximum aantal rijen dat door de query is geretourneerd tijdens één uitvoering. Kan niet null zijn. Altijd 0 wanneer een systeemeigen gecompileerde opgeslagen procedure query's uitvoert op een tabel die is geoptimaliseerd voor geheugen. |
statement_sql_handle |
varbinary(64) |
Van toepassing op: SQL Server 2014 (12.x) en nieuwere versies. Alleen gevuld met niet-NULL-waarden als Query Store is ingeschakeld en de statistieken voor die specifieke query wordt verzameld. |
statement_context_id |
grote |
Van toepassing op: SQL Server 2014 (12.x) en nieuwere versies. Alleen gevuld met niet-NULL-waarden als Query Store is ingeschakeld en de statistieken voor die specifieke query wordt verzameld. |
total_dop |
grote | De totale som van de mate van parallelle uitvoering die dit plan heeft gebruikt sinds het is gecompileerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
last_dop |
grote | De mate van parallelle uitvoering wanneer dit plan de laatste keer werd uitgevoerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
min_dop |
grote | De minimale mate van parallelle uitvoering die dit plan ooit heeft gebruikt tijdens één uitvoering. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
max_dop |
grote | De maximale mate van parallelle uitvoering die dit plan ooit heeft gebruikt tijdens één uitvoering. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
total_grant_kb |
grote | De totale hoeveelheid gereserveerde geheugentoe kennen in KB die dit plan heeft ontvangen sinds deze is gecompileerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
last_grant_kb |
grote | De hoeveelheid gereserveerde geheugentoe kennen in KB wanneer dit plan de laatste keer werd uitgevoerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
min_grant_kb |
grote | De minimale hoeveelheid gereserveerde geheugentoe kennen in KB die dit plan ooit tijdens één uitvoering heeft ontvangen. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
max_grant_kb |
grote | De maximale hoeveelheid gereserveerde geheugentoe kennen in KB die dit plan ooit tijdens één uitvoering heeft ontvangen. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
total_used_grant_kb |
grote | De totale hoeveelheid gereserveerde geheugentoe kennen in KB die door dit plan is gebruikt sinds deze is gecompileerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
last_used_grant_kb |
grote | De hoeveelheid gebruikte geheugentoe kennen in KB wanneer dit plan de laatste keer werd uitgevoerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
min_used_grant_kb |
grote | De minimale hoeveelheid gebruikte geheugentoe kennen in KB die dit plan ooit tijdens één uitvoering heeft gebruikt. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
max_used_grant_kb |
grote | De maximale hoeveelheid gebruikte geheugentoe kennen in KB die dit plan ooit tijdens één uitvoering heeft gebruikt. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
total_ideal_grant_kb |
grote | De totale hoeveelheid ideale geheugentoe kennen in KB die door dit plan wordt geschat sinds deze is gecompileerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
last_ideal_grant_kb |
grote | De hoeveelheid ideale geheugentoe kennen in KB wanneer dit plan de laatste keer werd uitgevoerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
min_ideal_grant_kb |
grote | De minimale hoeveelheid ideale geheugentoe kennen in KB die dit plan ooit tijdens één uitvoering heeft geschat. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
max_ideal_grant_kb |
grote | De maximale hoeveelheid ideale geheugentoe kennen in KB die dit plan ooit tijdens één uitvoering heeft geschat. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
total_reserved_threads |
grote | De totale som van gereserveerde parallelle threads die dit plan ooit heeft gebruikt sinds het is gecompileerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
last_reserved_threads |
grote | Het aantal gereserveerde parallelle threads wanneer dit plan de laatste keer werd uitgevoerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
min_reserved_threads |
grote | Het minimale aantal gereserveerde parallelle threads dat dit plan ooit tijdens één uitvoering heeft gebruikt. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
max_reserved_threads |
grote | Het maximum aantal gereserveerde parallelle threads dat dit plan ooit tijdens één uitvoering heeft gebruikt. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
total_used_threads |
grote | De totale som van de gebruikte parallelle threads die dit plan ooit heeft gebruikt sinds het is gecompileerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
last_used_threads |
grote | Het aantal gebruikte parallelle threads wanneer dit plan de laatste keer werd uitgevoerd. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
min_used_threads |
grote | Het minimale aantal gebruikte parallelle threads dat dit plan ooit heeft gebruikt tijdens één uitvoering. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
max_used_threads |
grote | Het maximum aantal gebruikte parallelle threads dat dit plan ooit tijdens één uitvoering heeft gebruikt. Altijd 0 voor het uitvoeren van query's op een tabel die is geoptimaliseerd voor geheugen.Van toepassing op: SQL Server 2016 (13.x) en latere versies. |
total_columnstore_segment_reads |
grote | De totale som van columnstore-segmenten die door de query worden gelezen. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
last_columnstore_segment_reads |
grote | Het aantal columnstore-segmenten dat wordt gelezen door de laatste uitvoering van de query. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
min_columnstore_segment_reads |
grote | Het minimale aantal columnstore-segmenten dat tijdens één uitvoering door de query is gelezen. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
max_columnstore_segment_reads |
grote | Het maximum aantal columnstore-segmenten dat tijdens één uitvoering door de query is gelezen. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
total_columnstore_segment_skips |
grote | De totale som van columnstore-segmenten die door de query zijn overgeslagen. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
last_columnstore_segment_skips |
grote | Het aantal columnstore-segmenten dat is overgeslagen door de laatste uitvoering van de query. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
min_columnstore_segment_skips |
grote | Het minimale aantal columnstore-segmenten dat tijdens één uitvoering door de query is overgeslagen. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
max_columnstore_segment_skips |
grote | Het maximum aantal columnstore-segmenten dat tijdens één uitvoering door de query is overgeslagen. Kan niet null zijn. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
total_spills |
grote | Het totale aantal pagina's dat is overgelopen door de uitvoering van deze query sinds deze is gecompileerd. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
last_spills |
grote | Het aantal pagina's dat de laatste keer dat de query werd uitgevoerd, is overgelopen. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
min_spills |
grote | Het minimale aantal pagina's dat deze query ooit heeft overgeslagen tijdens één uitvoering. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
max_spills |
grote | Het maximum aantal pagina's dat deze query ooit heeft overgeslagen tijdens één uitvoering. van toepassing op: te beginnen met SQL Server 2016 (13.x) SP2 en SQL Server 2017 (14.x) CU3 |
pdw_node_id |
De id voor het knooppunt waarop deze distributie zich bevindt. van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW) |
|
total_page_server_reads |
grote | Het totale aantal externe paginaserver-leesbewerkingen uitgevoerd door uitvoeringen van dit plan sinds deze is gecompileerd. van toepassing op: Azure SQL Database Hyperscale |
last_page_server_reads |
grote | Aantal leesbewerkingen van externe paginaservers uitgevoerd de laatste keer dat het plan werd uitgevoerd. van toepassing op: Azure SQL Database Hyperscale |
min_page_server_reads |
grote | Het minimale aantal externe paginaservers leest dat dit plan ooit is uitgevoerd tijdens één uitvoering. van toepassing op: Azure SQL Database Hyperscale |
max_page_server_reads |
grote | Het maximum aantal externe paginaservers leest dat dit plan ooit is uitgevoerd tijdens één uitvoering. van toepassing op: Azure SQL Database Hyperscale |
Notitie
1 Voor systeemeigen gecompileerde opgeslagen procedures wanneer het verzamelen van statistieken is ingeschakeld, wordt de werktijd verzameld in milliseconden. Als de query in minder dan één milliseconde wordt uitgevoerd, wordt de waarde 0
.
Machtigingen
SQL Server 2019 (15.x) en eerdere versies, en Azure SQL Managed Instance, vereisen VIEW SERVER STATE
machtiging.
VOOR SQL Server 2022 (16.x) en latere versies is VIEW SERVER PERFORMANCE STATE
machtiging op de server vereist.
In Azure SQL Database Basic, S0en S1 servicedoelstellingen, en voor databases in elastische pools, is het serverbeheerder--account, de Microsoft Entra-beheerder-account of lidmaatschap van de ##MS_ServerStateReader##
-server functie vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE
machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader##
-serverfunctie vereist.
Opmerkingen
Statistieken in de weergave worden bijgewerkt wanneer een query is voltooid.
Voorbeelden
Een. De TOP N-query's zoeken
In het volgende voorbeeld wordt informatie geretourneerd over de vijf belangrijkste query's, gerangschikt op gemiddelde CPU-tijd. In dit voorbeeld worden de query's samengevoegd op basis van hun query-hash, zodat logisch equivalente query's worden gegroepeerd op basis van het cumulatieve resourceverbruik. In de kolom Sample_Statement_Text ziet u een voorbeeld van de querystructuur die overeenkomt met de query-hash, maar deze moet worden gelezen zonder rekening te houden met specifieke waarden in de instructie. Als een instructie bijvoorbeeld WHERE Id = 5
bevat, kunt u deze lezen in de algemenere vorm: WHERE Id = @some_value
.
SELECT TOP 5
query_stats.query_hash AS Query_Hash,
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS Avg_CPU_Time,
MIN(query_stats.statement_text) AS Sample_Statement_Text
FROM (
SELECT QS.*,
SUBSTRING(ST.text, (QS.statement_start_offset / 2) + 1, (
(
CASE statement_end_offset
WHEN - 1
THEN DATALENGTH(ST.text)
ELSE QS.statement_end_offset
END - QS.statement_start_offset
) / 2
) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) AS ST
) AS query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
B. Aggregaties voor het aantal rijen retourneren voor een query
In het volgende voorbeeld worden geaggregeerde gegevens over het aantal rijen (totaalrijen, minimumrijen, maximumrijen en laatste rijen) geretourneerd voor query's.
SELECT qs.execution_count,
SUBSTRING(qt.text, qs.statement_start_offset / 2 + 1, (
CASE
WHEN qs.statement_end_offset = - 1
THEN LEN(CONVERT(NVARCHAR(max), qt.text)) * 2
ELSE qs.statement_end_offset
END - qs.statement_start_offset
) / 2) AS query_text,
qt.dbid,
dbname = DB_NAME(qt.dbid),
qt.objectid,
qs.total_rows,
qs.last_rows,
qs.min_rows,
qs.max_rows
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.text LIKE '%SELECT%'
ORDER BY qs.execution_count DESC;