Memantau koneksi, sesi, dan permintaan dengan menggunakan DMV

Berlaku untuk:✅ Titik akhir analitik SQL dan Gudang di Microsoft Fabric

Gunakan tampilan manajemen dinamis (DMV) yang ada untuk memantau status koneksi, sesi, dan permintaan di Microsoft Fabric. Untuk informasi selengkapnya tentang alat dan metode menjalankan kueri T-SQL, lihat Mengkueri gudang.

Dalam tutorial ini, Anda mempelajari cara memantau kueri SQL yang sedang berjalan dengan menggunakan tampilan manajemen dinamis (DMV).

Cara memantau koneksi, sesi, dan permintaan dengan menggunakan DMV siklus hidup kueri

Tiga DMV menyediakan informasi secara langsung tentang siklus hidup kueri SQL:

Bersama-sama, DMV ini membantu Anda menjawab pertanyaan seperti:

  • Siapa yang menjalankan sesi?
  • Kapan sesi dimulai?
  • Apa ID koneksi ke Warehouse dan sesi yang menjalankan permintaan tersebut?
  • Berapa banyak kueri yang berjalan secara aktif?
  • Kueri mana yang berjalan lama?

Prasyarat

  • Ruang kerja dengan kapasitas Fabric aktif.
  • Titik akhir analitik Gudang atau SQL yang ada.
  • Alat kueri T-SQL, seperti editor kueri SQL atau SQL Server Management Studio (SSMS).
  • Izin untuk membuat kueri pada DMV dan mengelola sesi.

Izin yang diperlukan untuk membuat kueri pada DMV dan mengelola sesi

  • Seorang Admin ruang kerja dapat menjalankan ketiga DMV (sys.dm_exec_connections, sys.dm_exec_sessions, dan sys.dm_exec_requests) serta melihat informasi sesi, koneksi, dan permintaan untuk semua pengguna di dalam ruang kerja.
  • Anggota, Anggota, Kontributor, atau Penampil di ruang kerja dapat menjalankan sys.dm_exec_sessions dan sys.dm_exec_requests serta hanya dapat melihat sesi dan permintaan miliknya sendiri dalam warehouse. Peran ini tidak dapat menjalankan sys.dm_exec_connections.
  • Hanya Admin ruang kerja yang dapat menjalankan KILL perintah untuk menghentikan sesi.

Menemukan koneksi dan sesi gudang

Gabungkan sys.dm_exec_connections dan sys.dm_exec_sessions untuk melihat sesi untuk setiap koneksi ke gudang:

SELECT connections.connection_id,
    connections.connect_time,
    sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
    ON connections.session_id = sessions.session_id;

Identifikasi dan hentikan kueri yang berjalan terlalu lama

Gunakan langkah-langkah berikut untuk menemukan kueri yang berjalan lama di gudang, identifikasi pengguna yang memulainya, dan jika diinginkan, hentikan sesi yang menjalankannya.

  1. Mencantumkan permintaan gudang aktif, diurutkan berdasarkan berapa lama masing-masing telah berjalan sejak tiba:

    SELECT request_id, session_id, start_time, total_elapsed_time
    FROM sys.dm_exec_requests
    WHERE status = 'running'
    ORDER BY total_elapsed_time DESC;
    
  2. Temukan pengguna yang memulai sesi yang berisi kueri yang berjalan lama. Ganti <session_id> dengan session_id nilai dari langkah sebelumnya:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Jika perlu, batalkan dan kembalikan sesi dengan menjalankan perintah KILL dengan session_id:

    KILL <session_id>;
    

    Misalnya, untuk menghentikan sesi 101:

    KILL 101;
    

Untuk panduan langkah demi langkah untuk mendiagnosis dan mengatasi pemblokiran kueri, lihat Memecahkan masalah pemblokiran kueri di Fabric Data Warehouse.