Bagikan melalui


DBCC PDW_SHOWEXECUTIONPLAN (Transact-SQL)

Berlaku untuk:Azure Synapse Analytics AnalyticsPlatform System (PDW)

Menampilkan rencana eksekusi SQL Server untuk kueri yang berjalan pada simpul Komputasi Azure Synapse Analytics atau Analytics Platform System (PDW) tertentu atau node Kontrol. Gunakan ini untuk memecahkan masalah performa kueri saat kueri berjalan pada simpul Komputasi dan simpul Kontrol.

Setelah masalah performa kueri dipahami untuk kueri SMP SQL Server yang berjalan pada simpul Komputasi, ada beberapa cara untuk meningkatkan performa. Kemungkinan cara untuk meningkatkan performa kueri pada simpul Komputasi termasuk membuat statistik multi-kolom, membuat indeks non-kluster, atau menggunakan petunjuk kueri.

Konvensi sintaks transact-SQL

Sintaks

Sintaks untuk Azure Synapse Analytics:

DBCC PDW_SHOWEXECUTIONPLAN ( distribution_id , spid )
[;]

Sintaks untuk Analytics Platform System (PDW):

DBCC PDW_SHOWEXECUTIONPLAN ( pdw_node_id , spid )
[;]

Catatan

Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Argumen

distribution_id

Pengidentifikasi untuk distribusi yang menjalankan rencana kueri. Ini adalah bilangan bulat dan tidak boleh NULL. Nilai harus antara 1 dan 60. Digunakan saat menargetkan Azure Synapse Analytics.

pdw_node_id

Pengidentifikasi untuk simpul yang menjalankan rencana kueri. Ini adalah bilangan bulat dan tidak boleh NULL. Digunakan saat menargetkan Appliance.

spid

Pengidentifikasi untuk sesi SQL Server yang menjalankan rencana kueri. Ini adalah bilangan bulat dan tidak boleh NULL.

Izin

Memerlukan izin CONTROL di Azure Synapse Analytics.

Memerlukan izin TAMPILKAN STATUS SERVER pada Appliance.

Contoh: Azure Synapse Analytics

J. Sintaks dasar DBCC PDW_SHOWEXECUTIONPLAN

Kueri sampel berikut akan mengembalikan untuk setiap distribusi yang sql_spid berjalan secara aktif.

SELECT [sql_spid]
    , [pdw_node_id]
    , [request_id]
    , [dms_step_index]
    , [type]
    , [start_time]
    , [end_time]
    , [status]
    , [distribution_id]
FROM sys.dm_pdw_dms_workers
WHERE [status] <> 'StepComplete'
    AND [status] <> 'StepError'
ORDER BY request_id
    , [dms_step_index];

Jika Anda penasaran seperti apa 1 yang distribution_id berjalan di sesi 375, Anda akan menjalankan perintah berikut:

DBCC PDW_SHOWEXECUTIONPLAN (1, 375);

Contoh: Analytics Platform System (PDW)

B. Sintaks dasar DBCC PDW_SHOWEXECUTIONPLAN

Kueri yang berjalan terlalu lama menjalankan operasi rencana kueri DMS atau operasi rencana kueri SQL.

Jika kueri menjalankan operasi rencana kueri DMS, Anda bisa menggunakan kueri berikut untuk mengambil daftar ID simpul dan ID sesi untuk langkah-langkah yang tidak selesai.

SELECT [sql_spid]
    , [pdw_node_id]
    , [request_id]
    , [dms_step_index]
    , [type]
    , [start_time]
    , [end_time]
    , [status]
FROM sys.dm_pdw_dms_workers
WHERE [status] <> 'StepComplete'
    AND [status] <> 'StepError'
    AND pdw_node_id = 201001
ORDER BY request_id
    , [dms_step_index]
    , [distribution_id];

Berdasarkan hasil kueri sebelumnya, gunakan sql_spid dan pdw_node_id sebagai parameter untuk DBCC PDW_SHOWEXECUTIONPLAN. Misalnya, perintah berikut menunjukkan rencana eksekusi untuk pdw_node_id 201001 dan sql_spid 375.

DBCC PDW_SHOWEXECUTIONPLAN (201001, 375);

Langkah berikutnya