Bagikan melalui


Wawasan kueri dalam pergudangan data Fabric

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

Di Microsoft Fabric, fitur wawasan kueri adalah solusi yang dapat diskalakan, berkelanjutan, dan dapat diperluas untuk meningkatkan pengalaman analitik SQL. Dengan data kueri historis, wawasan agregat, dan akses ke teks kueri aktual, Anda dapat menganalisis dan menyetel performa kueri Anda. QI menyediakan informasi tentang kueri yang dijalankan hanya dalam konteks pengguna, kueri sistem tidak dipertimbangkan.

Fitur wawasan kueri menyediakan lokasi pusat untuk data kueri historis dan wawasan yang dapat ditindaklanjuti selama 30 hari, membantu Anda membuat keputusan berdasarkan informasi untuk meningkatkan performa titik akhir analitik Gudang atau SQL Anda. Saat kueri SQL berjalan di Microsoft Fabric, fitur wawasan kueri mengumpulkan dan mengonsolidasikan data eksekusinya, memberi Anda informasi berharga. Anda bisa menampilkan teks kueri lengkap untuk peran Admin, Anggota, dan Kontributor.

  • Data Kueri Historis: Fitur wawasan kueri menyimpan data historis tentang eksekusi kueri, memungkinkan Anda melacak perubahan performa dari waktu ke waktu. Kueri sistem tidak disimpan dalam wawasan kueri.
  • Wawasan Agregat: Fitur wawasan kueri mengagregasi data eksekusi kueri ke dalam wawasan yang lebih dapat ditindak lanjuti, seperti mengidentifikasi kueri yang berjalan lama atau pengguna yang paling aktif. Agregasi ini didasarkan pada bentuk kueri. Untuk informasi selengkapnya, lihat Bagaimana kueri serupa diagregasi untuk menghasilkan wawasan?

Sebelum Anda mulai

Anda harus memiliki akses ke titik akhir analitik SQL atau Gudang dalam ruang kerja kapasitas Premium dengan izin kontributor atau yang lebih tinggi.

Kapan Anda memerlukan wawasan kueri?

Fitur wawasan kueri membahas beberapa pertanyaan dan kekhawatiran terkait performa kueri dan pengoptimalan database, termasuk:

Analisis Performa Kueri

  • Apa performa historis kueri kami?
  • Apakah ada kueri jangka panjang yang perlu diperhatikan?
  • Dapatkah kami mengidentifikasi kueri yang menyebabkan hambatan performa?
  • Apakah cache digunakan untuk kueri saya?
  • Kueri mana yang paling banyak menggunakan CPU?

Pengoptimalan dan Penyetelan Kueri

  • Kueri mana yang sering dijalankan, dan dapatkah performanya ditingkatkan?
  • Dapatkah kami mengidentifikasi kueri yang gagal atau dibatalkan?
  • Bisakah kita melacak perubahan dalam performa kueri dari waktu ke waktu?
  • Apakah ada kueri yang secara konsisten berkinerja buruk?

Pemantauan Aktivitas Pengguna

  • Siapa yang mengirimkan kueri tertentu?
  • Siapa saja pengguna paling aktif atau pengguna dengan kueri yang paling berjalan lama?

Ada tiga tampilan sistem untuk memberikan jawaban atas pertanyaan-pertanyaan ini:

Di mana Anda bisa melihat wawasan kueri?

Tampilan yang dibuat secara otomatis berada di bawah queryinsights skema di titik akhir analitik SQL dan Gudang. Di Fabric Explorer gudang misalnya, temukan tampilan wawasan kueri di bawah Skema, queryinsights, Tampilan.

Cuplikan layar dari Fabric Explorer memperlihatkan tempat menemukan tampilan wawasan kueri di bawah Skema, kueriinsight, Tampilan.

Setelah kueri Anda menyelesaikan eksekusi, Anda akan melihat data eksekusinya dalam queryinsights tampilan titik akhir analitik Gudang atau SQL yang tersambung dengan Anda. Jika Anda menjalankan kueri lintas database saat berada dalam konteks WH_2, kueri Anda muncul dalam wawasan WH_2kueri . Kueri yang diselesaikan dapat memakan waktu hingga 15 menit untuk muncul dalam wawasan kueri tergantung pada beban kerja bersamaan yang dijalankan. Waktu yang diperlukan agar kueri muncul dalam wawasan kueri meningkat dengan peningkatan kueri bersamaan yang dijalankan.

Bagaimana kueri serupa diagregasi untuk menghasilkan wawasan?

Kueri dianggap sama oleh Wawasan Kueri jika kueri memiliki bentuk yang sama, meskipun predikatnya mungkin berbeda.

Anda dapat menggunakan query hash kolom dalam tampilan untuk menganalisis kueri serupa dan menelusuri paling detail ke setiap eksekusi.

Misalnya, kueri berikut dianggap sama setelah predikatnya diparameterkan:

SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';

dan

SELECT * FROM Orders
WHERE OrderDate BETWEEN '2000-07-01' AND '2006-07-31';

Contoh

Mengidentifikasi kueri yang dijalankan oleh Anda dalam 30 menit terakhir

Kueri berikut menggunakan queryinsights.exec_requests_history dan fungsi bawaan USER_NAME() , yang mengembalikan nama pengguna sesi Anda saat ini.

SELECT * FROM queryinsights.exec_requests_history 
WHERE start_time >= DATEADD(MINUTE, -30, GETUTCDATE())
AND login_name = USER_NAME();

Mengidentifikasi kueri penggunaan CPU teratas berdasarkan waktu CPU

Kueri berikut mengembalikan 100 kueri teratas berdasarkan waktu CPU yang dialokasikan.

SELECT TOP 100 distributed_statement_id, query_hash, allocated_cpu_time_ms, label, command
FROM queryinsights.exec_requests_history
ORDER BY allocated_cpu_time_ms DESC;

Mengidentifikasi kueri mana yang memindai sebagian besar data dari jarak jauh daripada cache

Anda dapat menentukan apakah pemindaian data besar selama eksekusi kueri memperlambat kueri Anda dan membuat keputusan untuk mengubah kode kueri Anda. Analisis ini memungkinkan Anda membandingkan eksekusi kueri yang berbeda dan mengidentifikasi apakah varians dalam jumlah data yang dipindai adalah alasan perubahan performa.

Selain itu, Anda dapat menilai penggunaan cache dengan memeriksa jumlah data_scanned_memory_mb dan data_scanned_disk_mb, dan membandingkannya dengan data_scanned_remote_storage_mb untuk eksekusi sebelumnya.

Catatan

Nilai yang dipindai data mungkin tidak memperhitungkan data yang dipindahkan selama tahap perantara eksekusi kueri. Dalam beberapa kasus, ukuran data yang dipindahkan dan CPU yang diperlukan untuk diproses mungkin lebih besar dari yang ditunjukkan oleh nilai yang dipindai data.

Nilai data yang dipindai akan muncul sebagai 0 untuk pernyataan COPY INTO.

SELECT distributed_statement_id, query_hash, data_scanned_remote_storage_mb, data_scanned_memory_mb, data_scanned_disk_mb, label, command
FROM queryinsights.exec_requests_history
ORDER BY data_scanned_remote_storage_mb DESC;

Mengidentifikasi kueri yang paling sering dijalankan menggunakan substring dalam teks kueri

Kueri berikut mengembalikan kueri terbaru yang cocok dengan string tertentu, yang diurutkan berdasarkan jumlah eksekusi yang berhasil menurun.

SELECT * FROM queryinsights.frequently_run_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY number_of_successful_runs DESC;

Mengidentifikasi kueri yang berjalan lama menggunakan substring dalam teks kueri

Kueri berikut mengembalikan kueri yang cocok dengan string tertentu, yang diurutkan berdasarkan waktu eksekusi kueri median menurun.

SELECT * FROM queryinsights.long_running_queries
WHERE last_run_command LIKE '%<some_label>%'
ORDER BY median_total_elapsed_time_ms DESC;