To find the MAXDOP (Maximum Degree of Parallelism) used by running queries in SQL Server, you can use Dynamic Management Views (DMVs) such as sys.dm_exec_requests and sys.dm_exec_query_profiles. These views provide details about query execution, including parallelism levels.
1. Checking MAXDOP for Running Queries
SELECT
r.session_id,
r.request_id,
r.start_time,
r.status,
r.cpu_time,
r.total_elapsed_time,
r.logical_reads,
r.writes,
r.dop AS MAXDOP, -- Degree of Parallelism
st.text AS sql_text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE r.dop > 1 -- Filtering only parallel queries
ORDER BY r.start_time DESC;
Explanation:
r.dop: Shows the degree of parallelism (i.e., the number of CPU cores used for execution).
r.session_id: Identifies the session running the query.
r.status: Shows the execution status (e.g., running, suspended).
st.text: Displays the actual SQL query text.
Note: If dop = 1, the query is running serially without parallelism.
2. Checking MAXDOP for Completed Queries
SELECT
qs.execution_count,
qs.total_worker_time / qs.execution_count AS avg_worker_time,
qs.max_dop, -- MAXDOP used
st.text AS sql_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY qs.total_worker_time DESC;
3. Checking MAXDOP for Running Query Execution Plans
SELECT
er.session_id,
qp.query_plan
FROM sys.dm_exec_requests er
CROSS APPLY sys.dm_exec_query_plan(er.plan_handle) qp
WHERE er.dop > 1;
Look for Parallelism (Gather Streams) in the query plan XML to confirm parallel execution.
4. Checking MAXDOP Setting at Database Level
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max degree of parallelism';
To check the database-level MAXDOP setting in Azure SQL Database:
SELECT *
FROM sys.database_scoped_configurations
WHERE name = 'MAXDOP';
5. Checking MAXDOP for Index Operations
SELECT
r.session_id,
r.command,
r.dop,
st.text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE r.command LIKE '%INDEX%';
Thursday, 13 March 2025
How to Identify MAXDOP Value for Running/Completed Queries
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment