Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Techniky analýzy úloh vyhrazeného fondu SQL ve službě Azure Synapse Analytics
Třídy prostředků
Vyhrazený fond SQL poskytuje třídy prostředků pro přiřazení systémových prostředků k dotazům. Další informace o třídách prostředků najdete v tématu Třídy prostředků a správa úloh. Dotazy budou čekat, pokud třída prostředků přiřazená k dotazu potřebuje více prostředků, než je aktuálně k dispozici.
Detekce dotazů ve frontě a další dynamická zobrazení správy (DMV)
Můžete použít dynamické zobrazení správy (DMV) sys.dm_pdw_exec_requests
k identifikaci dotazů, které čekají ve frontě souběžného zpracování. Dotazy, které čekají na slot souběžnosti, mají stav pozastavené.
SELECT r.[request_id] AS Request_ID
, r.[status] AS Request_Status
, r.[submit_time] AS Request_SubmitTime
, r.[start_time] AS Request_StartTime
, DATEDIFF(ms,[submit_time],[start_time]) AS Request_InitiateDuration_ms
, r.resource_class AS Request_resource_class
FROM sys.dm_pdw_exec_requests r
;
Role správy úloh lze zobrazit pomocí sys.database_principals
.
SELECT ro.[name] AS [db_role_name]
FROM sys.database_principals ro
WHERE ro.[type_desc] = 'DATABASE_ROLE'
AND ro.[is_fixed_role] = 0
;
Následující dotaz ukazuje, ke které roli má každý uživatel přiřazenou.
SELECT r.name AS role_principal_name
, m.name AS member_principal_name
FROM sys.database_role_members rm
JOIN sys.database_principals AS r ON rm.role_principal_id = r.principal_id
JOIN sys.database_principals AS m ON rm.member_principal_id = m.principal_id
WHERE r.name IN ('mediumrc','largerc','xlargerc')
;
Vyhrazený fond SQL má následující typy čekání:
-
LocalQueriesConcurrencyResourceType: Dotazy, které se nacházejí mimo rámec slotu souběžnosti. Dotazy DMV a systémové funkce, jako
SELECT @@VERSION
jsou příklady místních dotazů. - UserConcurrencyResourceType: Dotazy, které se nacházejí v rámci rámce pro sloty souběžnosti. Dotazy na tabulky koncových uživatelů představují příklady, které by používaly tento typ prostředku.
- DmsConcurrencyResourceType: Čekání vyplývající z operací přesunu dat.
- BackupConcurrencyResourceType: Toto čekání indikuje, že se zálohuje databáze. Maximální hodnota tohoto typu prostředku je 1. Pokud bylo současně požadováno více záloh, ostatní se zařadí do fronty. Obecně doporučujeme minimální dobu mezi po sobě jdoucími snímky o 10 minutách.
sys.dm_pdw_waits
DMV lze použít ke zjištění, na které prostředky požadavek čeká.
SELECT w.[wait_id]
, w.[session_id]
, w.[type] AS Wait_type
, w.[object_type]
, w.[object_name]
, w.[request_id]
, w.[request_time]
, w.[acquire_time]
, w.[state]
, w.[priority]
, SESSION_ID() AS Current_session
, s.[status] AS Session_status
, s.[login_name]
, s.[query_count]
, s.[client_id]
, s.[sql_spid]
, r.[command] AS Request_command
, r.[label]
, r.[status] AS Request_status
, r.[submit_time]
, r.[start_time]
, r.[end_compile_time]
, r.[end_time]
, DATEDIFF(ms,r.[submit_time],r.[start_time]) AS Request_queue_time_ms
, DATEDIFF(ms,r.[start_time],r.[end_compile_time]) AS Request_compile_time_ms
, DATEDIFF(ms,r.[end_compile_time],r.[end_time]) AS Request_execution_time_ms
, r.[total_elapsed_time]
FROM sys.dm_pdw_waits w
JOIN sys.dm_pdw_exec_sessions s ON w.[session_id] = s.[session_id]
JOIN sys.dm_pdw_exec_requests r ON w.[request_id] = r.[request_id]
WHERE w.[session_id] <> SESSION_ID();
sys.dm_pdw_resource_waits
DMV zobrazuje informace o čekání pro daný dotaz. Doba čekání na prostředek měří dobu čekání na poskytnutí prostředků. Doba čekání signálu je čas, který je potřeba k tomu, aby podkladové SQL servery naplánovaly dotaz na procesor.
SELECT [session_id]
, [type]
, [object_type]
, [object_name]
, [request_id]
, [request_time]
, [acquire_time]
, DATEDIFF(ms,[request_time],[acquire_time]) AS acquire_duration_ms
, [concurrency_slots_used] AS concurrency_slots_reserved
, [resource_class]
, [wait_id] AS queue_position
FROM sys.dm_pdw_resource_waits
WHERE [session_id] <> SESSION_ID();
Můžete také použít sys.dm_pdw_resource_waits
DMV k vypočítání, kolik slotů souběžnosti bylo uděleno.
SELECT SUM([concurrency_slots_used]) as total_granted_slots
FROM sys.[dm_pdw_resource_waits]
WHERE [state] = 'Granted'
AND [resource_class] is not null
AND [session_id] <> session_id();
sys.dm_pdw_wait_stats
DMV lze použít k analýze historických trendů čekání.
SELECT w.[pdw_node_id]
, w.[wait_name]
, w.[max_wait_time]
, w.[request_count]
, w.[signal_time]
, w.[completed_count]
, w.[wait_time]
FROM sys.dm_pdw_wait_stats w;
Další kroky
Další informace o správě uživatelů databáze a zabezpečení naleznete v tématu Zabezpečení vyhrazeného fondu SQL (dříve SQL DW). Další informace o tom, jak větší třídy prostředků mohou zlepšit kvalitu clusterovaného indexu columnstore, naleznete v tématu Opětovné sestavení indexů za účelem zlepšení kvality segmentů.