Aracılığıyla paylaş


Doku veri ambarında sorgu iç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: Sorgu içgörüleri özelliği, sorgu yürütmeleri hakkındaki 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 içgörüleri özelliği, 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 sorgu yürütme verilerini 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?

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 Ambara 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 İyileş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 İzleme

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

Bu soruların yanıtlarını sağlamak için üç sistem görünümü vardır:

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

Otomatik oluşturulan görünümler SQL analytics uç noktasıqueryinsightsşemanın altındadır . Örneğin bir Ambarın Doku Gezgini'nde Şemalar, queryinsights, Views altında sorgu içgörüleri görünümlerini 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. bağlamındayken veritabanları arası bir WH_2 çalıştırırsanız, sorgunuz içindeki sorgu içgörülerinde WH_2görüntülenir. 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.

İç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';

ile

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 ve değerlerinin toplamını data_scanned_memory_mbdata_scanned_disk_mbinceleyip geçmiş yürütmeler için önbelleği ile karşılaştırarak önbelleğin data_scanned_remote_storage_mb 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.

COPY INTO deyimleri için taranan değerler 0 olarak görünecektir.

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;