Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Teknik untuk menganalisis beban kerja kumpulan SQL khusus Anda di Azure Synapse Analytics.
Kelas Sumber Daya
Kumpulan SQL khusus menyediakan kelas sumber daya untuk menetapkan sumber daya sistem ke kueri. Untuk informasi selengkapnya tentang kelas sumber daya, lihat Kelas sumber daya & manajemen beban kerja. Kueri akan menunggu jika kelas sumber daya yang ditetapkan ke kueri membutuhkan lebih banyak sumber daya daripada yang saat ini tersedia.
Deteksi kueri yang diantre dan DMV lainnya
Anda dapat menggunakan sys.dm_pdw_exec_requests DMV untuk mengidentifikasi kueri yang menunggu dalam antrian keserentakan. Kueri yang menunggu slot konkurensi memiliki status ditangguhkan.
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
;
Peran manajemen beban kerja dapat dilihat dengan 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
;
Kueri berikut menunjukkan peran mana yang ditetapkan setiap pengguna.
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')
;
Kumpulan SQL khusus memiliki jenis tunggu berikut:
-
LocalQueriesConcurrencyResourceType: Kueri yang berada di luar sistem slot konkurensi. Kueri DMV dan fungsi sistem seperti
SELECT @@VERSIONcontoh kueri lokal. - UserConcurrencyResourceType: Kueri yang berada di dalam kerangka kerja slot konkurensi. Kueri terhadap tabel pengguna akhir mewakili contoh yang akan menggunakan jenis sumber daya ini.
- DmsConcurrencyResourceType: Menunggu hasil dari operasi pergerakan data.
- BackupConcurrencyResourceType: Penantian ini menandakan bahwa database sedang dicadangkan. Nilai maksimum untuk jenis sumber daya ini adalah 1. Jika beberapa cadangan diminta pada saat yang sama, yang lainnya mengantre. Secara umum, kami merekomendasikan waktu minimum antara rekam jepret berturut-turut 10 menit.
sys.dm_pdw_waits DMV dapat digunakan untuk melihat sumber daya mana yang sedang ditunggu oleh permintaan.
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 memperlihatkan informasi tunggu untuk kueri tertentu. Waktu tunggu sumber daya mengukur waktu menunggu sumber daya disediakan. Waktu tunggu sinyal adalah waktu yang diperlukan server SQL yang mendasar untuk menjadwalkan kueri ke CPU.
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();
Anda juga dapat menggunakan sys.dm_pdw_resource_waits DMV untuk menghitung berapa banyak slot konkurensi yang telah diberikan.
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 dapat digunakan untuk analisis tren historis waktu tunggu.
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;
Langkah berikutnya
Untuk informasi selengkapnya tentang mengelola pengguna dan keamanan database, lihat Mengamankan kumpulan SQL khusus (sebelumnya SQL DW). Untuk informasi selengkapnya tentang bagaimana kelas sumber daya yang lebih besar dapat meningkatkan kualitas indeks penyimpan kolom berkluster, lihat Membangun ulang indeks untuk meningkatkan kualitas segmen.