Some SQL Queries to find Top Queries Used in Database

Here is a query to find the to 50 queries used:

SELECT TOP 50
        qs.execution_count
        ,OBJECT_NAME(objectid)
        ,query_text = SUBSTRING(
                    qt.text,
                    qs.statement_start_offset/2,         
                    (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) 
        ,qt.dbid
        ,dbname = db_name(qt.dbid)
        ,qt.objectid 
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
ORDER BY qs.execution_count DESC;

Here is a query to find the top 50 I/O intensive queries:

ELECT TOP 50
        qs.execution_count
        ,OBJECT_NAME(objectid)
        ,query_text = SUBSTRING(
                    qt.text,
                    qs.statement_start_offset/2,         
                    (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) 
        ,qt.dbid
        ,dbname = db_name(qt.dbid)
        ,qt.objectid 
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
ORDER BY total_logical_reads DESC;

Here is a query to find the top 50 CPU intensive queries:

SELECT TOP 50
        qs.execution_count
        ,OBJECT_NAME(objectid)
        ,query_text = SUBSTRING(
                    qt.text,
                    qs.statement_start_offset/2,         
                    (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) 
        ,qt.dbid
        ,dbname = db_name(qt.dbid)
        ,qt.objectid 
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
ORDER BY total_worker_time DESC;

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *