Sorgu performansına ilişkin bilgiler

Sorgularınız çalıştığında, Azure Databricks performansı geliştirme fırsatlarını işaretleyen sorgu performansı içgörülerini sağlar ve zaten uyguladığı optimizasyonları raporlar. Her içgörü, küçük dosyaları sıkıştırmak, istatistikler toplamak veya bir depoyu boyutlandırmak gibi harekete geçebileceğiniz bir öneri içerir.

Sorgunuz için içgörüler ve öneriler bulma

İçgörüler sorgu geçmişinizde ve sorgu profilinde görünür. Sorgu ayrıntıları panelinde, toplam görev süresi üzerindeki tahmini etkilerine göre derecelenmiş içgörülerin özeti gösterilir. Sorgu profilindeki Performans içgörüleri sekmesi, her içgörü için tüm ayrıntıları gösterir.

Genie Code ile iyileştirme

Sorguda eyleme dönüştürülebilir içgörüler olduğunda İyileştir'i seçerek Genie Code'ı açın. Sorgu değişikliği gerektiren içgörüler için Genie Code sorguyu yeniden yazar ve değişiklikleri onayınız için sunar. Tablo veya işlem değişiklikleri içeren içgörüler için Genie Code, önerilen eylemleri düz dil metni olarak özetler.

Genie Code ile çalışma hakkında daha fazla bilgi edinmek için bkz. Genie Code.

Sorgu iyileştirme içgörüleri

COVERAGE_FILTER_KEYS_CLUSTERING

Tablo, tablo taraması sırasında filtrelerde kullanılmayan bir veya daha fazla anahtar tarafından kümelenir .

Öneri: Okuma baytlarını azaltmak için kümeleme anahtarlarına filtre ekleyin.

COVERAGE_FILTER_KEYS_PARTITIONING

Tablo, tablo taraması sırasında filtrelerde kullanılmayan bir veya daha fazla anahtarla bölümlenir .

Öneri: Okuma baytlarını azaltmak için bölümleme anahtarlarına filtreler ekleyin.

COVERAGE_PHOTON

Photon bu işlemi hızlandıramaz, bu nedenle sorgu standart çalışma zamanı altyapısını kullanır.

Öneri:Foton sınırlamalarını gözden geçirin ve sorguyu desteklenen bir yürütme yolunu kullanacak şekilde ayarlayın.

EXPLODING_JOIN

Birleştirme, okuduğundan önemli ölçüde daha fazla satır üretir.

Öneri: Hangi sonuç alt kümesine ihtiyacınız olduğunu belirleyin, sonra birleştirme koşulunu güncelleştirin veya her iki ilişkideki giriş satırlarının sayısını azaltın.

FLOW_FULL_RECOMPUTE

Akıştam bir yeniden derleme olarak çalışır.

Öneri: Okuma baytlarını azaltmak için artımlı destek için sorguyu yeniden yazın.

REDUNDANT_AGGREGATION

Toplama işlemi sorgu sonucunu değiştirmedi.

Öneri: Toplamayı kaldırın veya birincil ve yabancı anahtar kısıtlamalarını uygulayın.

REDUNDANT_JOIN

Dış birleştirme, dış tarafın sıra sayısını değiştirmez ve birleştirilmiş tablodan hiçbir sütun kullanılmaz.

Tavsiye: Birleştirmeyi kaldırın veya birincil anahtar veya benzersiz kısıtlamalar uygulayın.

SELECTIVE_JOIN

Birleştirme, okuduğundan çok daha az satır üretir.

Öneri: Hangi sonuç alt kümesine ihtiyacınız olduğunu belirleyin, ardından giriş satırlarını azaltmak için birleştirmeden önce filtre ekleyin.

WIDE_PROJECTION

Sorgu, tablodaki tüm sütunları projeler .

Öneri: Yalnızca okuma baytlarını azaltmak için ihtiyacınız olan sütunları Project.

Veri düzeni içgörüleri

EŞ ZAMANLI_YAZMA

Tabloya eşzamanlı yazma işlemleri otomatik olarak çözümlenen veya başarısız olan çakışmalara neden olur.

Öneri: Eşzamanlı yazma işlemlerini belirlemek ve çakışmaları önlemek için zamanlamayı ayarlamak için Delta geçmişini gözden geçirin.

COVERAGE_STATS_DELTA

Tablo tarama dosyası filtreleri için delta veri atlama istatistikleri eksik veya tamamlanmamış olduğundan sorgu dosya içi filtreleme kullanmaktadır.

Her filtrenin istatistik durumu aşağıdakilerden biri olabilir:

  • Tam: İstatistikler tüm filtreler için kullanılabilir.
  • Kısmi: İstatistikler, filtrelerin bir alt kümesi için kullanılabilir.
  • Kullanıla -mıyor: İstatistikler hiçbir filtre için kullanılamaz.
  • Kullanılma -yan: Filtre veri türünü dönüştürdüğünden istatistikler kullanılamaz.

Öneri:Okunan bayt sayısını azaltmak için Delta istatistiklerini toplayın.

COVERAGE_STATS_OPTIMIZER

Maliyet tabanlı iyileştirici istatistikleri eksik veya eksik olduğundan sorgu planı standart buluşsal yöntemleri kullanır.

Öneri:İyileştiricinin daha iyi bir plan oluşturmasını sağlamak için istatistikleri toplayın.

DATA_FILE_SIZE

Tablo taraması birçok küçük dosyayı okur, bu da tarama süresini artırır.

Recommendations:

  • Tabloda Tahminci Optimizasyonu etkinleştirerek dosya boyutlarını otomatik olarak optimize edin.
  • Küçük dosyaları sıkıştırmak için çalıştırın OPTIMIZE .
  • Bölünmüş tablolar için sıvı kümeleme yöntemine geçin, çünkü Öngörücü Optimizasyon küçük dosyaları bölümler arasında sıkıştıramaz.

DATA_SKEW (Veri Sapması)

Veriler, bilgi işlem kaynakları arasında eşit olmayan bir şekilde dağıtılır.

Öneri: Veri dağıtımını gözden geçirin, ardından iş yükünü dengelemek için anahtar tuzlama veya ön toplama kullanın.

MANUAL_DATA_LAYOUT

Tablo manuel olarak optimize edilmiştir ve Otomatik Sıvı Klaseleme (Otomatik Sıvı Kümeleme) ile faydalanabilir.

Recommendations:

İşlem ve kaynak içgörüleri

DATA_SPILL

Veriler belleğe sığmadığından sorgu yürütme sırasında diske dökülen veriler.

Öneri: Bellek eklemek için ambar boyutunu artırın. Bellek kullanımını azaltmak için satır, sütun veya büyük sütunların (dizeler, diziler, haritalar, yapılar) boyutunu azaltın.

EXCESSIVE_QUEUE_TIME

Sorgu , ambar kuyruğunda bekledi.

Öneri: Kuyruk süresini azaltmak için ambardaki küme sayısı üst sınırını artırın.

IO_THROTTLING

Bulut depolama isteği, bulut sağlayıcısı tarafından kısıtlandı.

Öneri: Bulut sağlayıcınızdan daha fazla depolama isteği sınırı istemek için yöneticinize başvurun.

Uygulanan ivmelenmeler

Bu içgörüler, Azure Databricks'in sorgu yürütme sırasında zaten uyguladığı optimizasyonları tanımlar. Performans içgörüleri sekmesinde Hızlandırılmış etiketle görünürler ve işlem gerektirmezler.

AUTO_LIQUID_CLUSTERING

Bu sorgu, tabloları Otomatik Sıvı Kümeleme (Otomatik Sıvı Kümeleme) kullandığı için daha az veri okuyordu. Azure Databricks, her tabloyu iş yükünüzden öğrendiği anahtarlara göre sürekli kümeler, böylece taramalar filtrelerinizle eşleşmeyen dosyaları atlar. Akortlama veya manuel bölümleme gerektirmez.

HISTORY_BASED_JOIN_STRATEGY

Azure Databricks, benzer sorguların önceki çalışmalarından alınan ölçümlerle bu sorgu birleşmesini optimize etti. Veri kümesinde yer değiştirmek yerine, iş yükü geçmişinize göre yayın birleştirmesini seçti. Sorgu değişikliği gerekmez.

SHORT_QUERY_PRIORITIZATION

Küme kapasitesine sahip olmasına rağmen, Azure Databricks bu sorgunun kısa süreli olacağını öngördü ve ağır sorguların arkasında kuyruk halinde tutmak yerine hemen hızlı bir yoldan geçirdi. Bu, etkileşimli iş yüklerinin yük altında yanıt vermesini sağlar.

Ek kaynaklar

Performans en iyi yöntemlerine daha geniş bir genel bakış için bkz. Databricks, Spark ve Delta Lake İş Yüklerini İyileştirmeye Yönelik Kapsamlı Kılavuz.