Fabric Data Warehouse'ta Sorgu İçgörüleri

Şunlar için geçerlidir:✅ Microsoft Fabric'te SQL analiz uç noktası ve Ambarı

Microsoft Fabric'te sorgu içgörüleri özelliği, SQL analiz deneyimini geliştirmek için ölçeklenebilir, sürdürülebilir ve genişletilebilir bir çözümdür. Geçmiş sorgu verileri, toplu içgörüler ve gerçek sorgu metnine erişim sayesinde sorgu performansınızı analiz edebilir ve ayarlayabilirsiniz. QI, yalnızca kullanıcının bağlamında çalıştırılan sorgular hakkında bilgi sağlar, sistem sorguları dikkate alınmaz.

Sorgu içgörüleri özelliği, geçmiş sorgu verileri için merkezi bir konum ve 30 gün boyunca eyleme dönüştürülebilir içgörüler sağlayarak Ambarınızın veya SQL analiz uç noktanızın performansını artırmak için bilinçli kararlar vermenize yardımcı olur. Bir SQL sorgusu Microsoft Fabric'te çalıştırıldığında, sorgu içgörüleri özelliği yürütme verilerini toplar ve birleştirir ve size değerli bilgiler sağlar. Yönetici, Üye ve Katkıda Bulunan rolleri için tam sorgu metnini görüntüleyebilirsiniz.

  • Geçmiş Sorgu Verileri: Query Insights, sorgu yürütmeleriyle ilgili geçmiş verileri depolayarak zaman içindeki performans değişikliklerini izlemenizi sağlar. Sistem sorguları sorgu içgörülerinde depolanmaz.
  • Toplu İçgörüler: Sorgu İçgörüleri, sorgu yürütme verilerini uzun süre çalışan sorguları veya çoğu etkin kullanıcıyı tanımlama gibi daha eyleme dönüştürülebilir içgörüler halinde toplar. Bu toplamalar sorgu şeklini temel alır. Daha fazla bilgi için bkz. İçgörü oluşturmak için benzer sorgular nasıl toplanır?
  • Ambar İçgörüleri: Ambarınızın genel durumunu anlamak için görünümünü kullanın sql_pool_insights . Bu görünüm havuz düzeyinde ölçümler ve basınç göstergeleri sağlayarak kaynak ayırmayı izlemenize ve havuzlar arasında performans sorunlarını tanılamanıza yardımcı olur.

Başlamadan önce

Katkıda Bulunan veya daha yüksek izinlere sahip bir Premium kapasite çalışma alanında SQL analiz uç noktasına veya Ambar erişiminiz olmalıdır.

Sorgu içgörülerine ne zaman ihtiyacınız var?

Sorgu içgörüleri özelliği, aşağıdakiler dahil olmak üzere sorgu performansı ve veritabanı iyileştirmesi ile ilgili çeşitli soruları ve endişeleri giderir:

Sorgu performansı analizi

  • Sorgularımızın geçmiş performansı nedir?
  • Uzun süre çalışan ve ilgilenmesi gereken sorgular var mı?
  • Performans sorunlarına neden olan sorguları belirleyebilir miyiz?
  • Sorgularım için önbellek kullanılıyor mu?
  • En çok CPU kullanan sorgular hangileridir?

Sorgu iyileştirme ve ayarlama

  • Sık çalıştırılan sorgular hangileridir ve performansları geliştirilebilir mi?
  • Başarısız olan veya iptal edilen sorguları tanımlayabilir miyiz?
  • Sorgu performansındaki değişiklikleri zaman içinde izleyebilir miyiz?
  • Tutarlı olarak kötü performans gösteren sorgular var mı?

Kullanıcı etkinliği izleme

  • Belirli bir sorguyu kim gönderdi?
  • En etkin kullanıcılar veya en uzun süre çalışan sorgulara sahip kullanıcılar kimlerdir?

SQL havuzu ve kaynak izleme

  • Sorgu yürütme sırasında SQL havuzum baskı altında mıydı?
  • Havuz son 24 saat içinde ne sıklıkta baskıyla karşılaşmıştır?
  • Çalışma alanı kapasitesinde veya havuz yapılandırmasında yeni değişiklikler yapıldı mı?
  • Kaynakların en yüksek yüzdesini hangi havuzlar kullanıyor?
  • Basınç olaylarını yavaş çalışan sorgularla ilişkilendirebilir miyim?
  • Havuz basıncındaki eğilimleri zaman içinde nasıl belirleyebilirim?

Aşağıdaki sistem görünümleri bu soruların yanıtlarını sağlar:

Sorgu içgörülerini nerede görebilirsiniz?

Otomatik oluşturulan görünümler, SQL analytics endpoint ve Warehouse içinde queryinsights şeması altındadır. Örneğin, bir ambarın Fabric Gezgini'nde sorgu içgörüleri görünümlerini Şemalar, queryinsights, Görünümler altında bulun.

Şemalar, queryinsights, Views altında sorgu içgörüleri görünümlerinin nerede bulunacağı gösteren Doku Gezgini'nin ekran görüntüsü.

Sorgunuz yürütmeyi tamamladıktan sonra, yürütme verilerini queryinsights bağlandığınız Ambar veya SQL analiz uç noktasının görünümlerinde görürsünüz. WH_2 bağlamındayken bir veritabanları arası sorgu çalıştırırsanız, sorgunuz WH_2 içindeki sorgu içgörülerinde görünür. Tamamlanan sorguların yürütülmekte olan eş zamanlı iş yüküne bağlı olarak sorgu içgörülerinde görünmesi 15 dakika kadar sürebilir. Sorgu içgörülerinde sorguların görünmesi için geçen süre, yürütülen eşzamanlı sorgulardaki artışla artar.

Tüm queryinsights görünümler yalnızca Fabric Data Warehouse ve SQL analitik uç noktasında mevcuttur.

İçgörü oluşturmak için benzer sorgular nasıl toplanır?

Sorgular aynı şekle sahipse, koşul farklı olsa bile sorgular Sorgu İçgörüleri tarafından aynı kabul edilir.

Benzer sorguları analiz etmek ve her yürütmede detaya gitmek için görünümlerdeki sütunu kullanabilirsiniz query hash .

Örneğin, aşağıdaki sorgular, önkoşulları parametrelendirildikten sonra aynı kabul edilir:

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

ve

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

Örnekler

Son 30 dakika içinde sizin tarafınızdan çalıştırılan sorguları tanımlama

Aşağıdaki sorgu, geçerli oturum kullanıcı adınızı döndüren ve yerleşik queryinsights.exec_requests_history işlevini kullanırUSER_NAME().

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

CPU süresine göre en çok CPU tüketen sorguları belirleme

Aşağıdaki sorgu, ayrılan CPU süresine göre ilk 100 sorguyu döndürür.

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;

Hangi sorguların önbellek yerine uzak verilerden çoğu veriyi taradığı belirleme

Sorgu yürütme sırasında büyük veri taramanın sorgunuzu yavaşlatıp yavaşlatmadığını belirleyebilir ve sorgu kodunuzu buna göre ayarlamaya karar vekleyebilirsiniz. Bu analiz, farklı sorgu yürütmelerini karşılaştırmanıza ve taranan veri miktarındaki varyansın performans değişikliklerinin nedeni olup olmadığını belirlemenize olanak tanır.

Ayrıca, data_scanned_memory_mb ile data_scanned_disk_mb değerlerinin toplamını inceleyip bunu önceki yürütmeler için data_scanned_remote_storage_mb ile karşılaştırarak önbellek kullanımını değerlendirebilirsiniz.

Not

Taranan veriler, sorgu yürütmenin ara aşamalarında taşınan verileri hesaba katmayabilir. Bazı durumlarda, taşınan verilerin boyutu ve işlenmesi için gereken CPU, taranan veri değerinin gösterdiğinden daha büyük olabilir.

Tarama verisi değerleri 0, COPY INTO ifadeleri için görünür.

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;

Sorgu metninde bir alt dize kullanarak en sık çalıştırılacak sorguları belirleme

Aşağıdaki sorgu, belirli bir dizeyle eşleşen ve azalan başarılı yürütme sayısına göre sıralanmış en son sorguları döndürür.

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

Sorgu metninde bir alt dize kullanarak uzun süre çalışan sorguları tanımlama

Aşağıdaki sorgu, ortanca sorgu yürütme süresi azalan düzende sıralanmış belirli bir dizeyle eşleşen sorguları döndürür.

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

Sorgu analiz görünümleri