मेरे पिछले अनुभव में थ्रेशोल्ड फॉर पैरेललिज्म सीएक्सपैकेट को कम करने में मदद नहीं करता था।
CXPACKET
स्केव्ड पैरेललिज़्म के परिणामस्वरूप गलत आँकड़ों के कारण उच्च प्रतीक्षा हो सकती है।
- CXPACKET वेट्स पर अधिक: तिरछा समानांतरवाद
- Microsoft कनेक्ट आइटम
- मेरी क्वेरी समानता के कारण प्रतीक्षा नहीं कर रही है? - टिम फोर्ड
एसक्यूएल के बाद मैं सत्रों को खोजने के लिए उपयोग किया जाता है जिसमें सीएक्सपैकेट और " अन्य प्रतीक्षा " दोनों हैं (कृपया नीचे दिए गए चित्र देखें)।
एसक्यूएल
DECLARE @RawResult TABLE ([database_id] INT,[session_id] INT,exec_context_id INT, [blocking_session_id] INT,task_state VARCHAR(20),
[cpu_time] BIGINT,[wait_duration_ms] BIGINT, [wait_type] VARCHAR(100),[resource_description] nvarchar(3072),
[sql_handle] varbinary(64),[plan_handle] varbinary(64)
)
INSERT INTO @RawResult
SELECT
[R].[database_id],
[S].[session_id],
[W].exec_context_id,
[W].blocking_session_id,
[T].task_state,
[R].[cpu_time],
[W].[wait_duration_ms],
[W].[wait_type],
[W].[resource_description],
[R].[sql_handle],
[R].[plan_handle]
FROM sys.dm_os_waiting_tasks [W]
INNER JOIN sys.dm_os_tasks [T] ON
[W].[waiting_task_address] = [T].[task_address]
INNER JOIN sys.dm_exec_sessions [S] ON
[W].[session_id] = [S].[session_id]
INNER JOIN sys.dm_exec_requests [R] ON
[S].[session_id] = [R].[session_id]
WHERE [S].[is_user_process] = 1
--AND S.session_id <> @@SPID--???
--ORDER BY [W].[session_id],[W].[exec_context_id];
SELECT
DB_NAME(C.database_id) AS database_name,
C.[database_id],
C.[session_id],
C.exec_context_id,
C.blocking_session_id,
C.task_state,
C.[cpu_time],
C.[wait_duration_ms],
C.[wait_type],
C.[sql_handle],
C.[plan_handle],
[H].text,
[P].[query_plan],
C.[resource_description]
FROM @RawResult C
OUTER APPLY sys.dm_exec_sql_text (C.[sql_handle]) [H]
OUTER APPLY sys.dm_exec_query_plan (C.[plan_handle]) [P]
WHERE C.[session_id] IN
(
SELECT A.[session_id]
FROM @RawResult A
INNER JOIN @RawResult B
ON A.[session_id] = B.[session_id]
AND A.wait_type='CXPACKET'
AND B.wait_type <> 'CXPACKET'
)
ORDER BY C.[session_id],C.[exec_context_id]
बड़े स्कैन भी मूल कारण का हिस्सा हो सकते हैं। जब मैंने उपरोक्त क्वेरी से निष्पादन योजना की जांच की, तो मुझे अपने डेटाबेस में एक ऐसा स्कैन मिला। निष्पादन योजना में एक अनुपलब्ध सूचकांक सुझाव भी था।