Explain olanağını kullanarak SQL deyimlerinin ayarlanması

Explain olanağı, bir SQL deyimini çalıştırmak için sorgu eniyileyicisi tarafından seçilen sorgu erişim planını görüntülemek için kullanılır.

Bu belge, plan işleçleri, bağımsız değişkenleri, yürütme sırası ve maliyetler gibi, SQL deyimini çalıştırmak için kullanılan ilişkisel işlemlerle ilgili kapsamlı ayrıntıları içerir. Sorgu erişim planı, sorgu başarımında en kritik etkenlerden biri olduğu için, sorgu başarımı sorunlarını tanılarken Explain olanağı çıkışını anlamak önemlidir.

Açıklama bilgileri genellikle şu şekilde kullanılır:
  • Uygulama performansının neden değişdiğini anlasın
  • Performans ayarlama çalışmalarını değerlendirin

Performans değişikliklerinin çözümleniyor

Sorgu başarımında değişikliklerin nedenlerini anlamanıza yardımcı olmak için, önce ve sonra açıklama bilgilerini almak için aşağıdaki adımları gerçekleştirin:
  1. Herhangi bir değişiklik yapmadan önce sorguya ilişkin açıklama bilgilerini yakalayın ve sonuç açıklama tablolarını kaydedin. Diğer bir seçenek olarak, çıkışı db2exfmt yardımcı programından saklayabilirsiniz. Ancak, açıklama çizelgelerinde açıklama bilgilerinin açıklanması, bunları SQL ile sorgulamayı kolaylaştırır ve daha kapsamlı çözümlemeyi kolaylaştırır. Ayrıca, ilişkisel bir DBMS ' de veri bulunmanın tüm açık bakım avantajlarını da sağlar. db2exfmt aracı herhangi bir zamanda çalıştırılabilir.
  2. Geçerli katalog istatistiklerini kaydedin ya da yazdırın. Bu görevi gerçekleştirmenize yardımcı olması için db2look komutunu da kullanabilirsiniz. In Db2® Version 9.7, you can collect an explain snapshot when the explain tables are populated. Açıklama anlık görünümü, deyimin açıklandığı sırada ilgili istatistiklerin tümünü içerir. db2exfmt yardımcı programı anlık görüntüdeki istatistikleri otomatik olarak biçimlendirir. Sorgu eniyilemesi için kullanılan istatistik henüz sistem kataloğu çizelgelerinde olmayabileceği için ya da deyimin açıklandığı zaman ile sistem kataloğundan istatistik alındığında bu durum, otomatik ya da gerçek zamanlı istatistik toplama kullanılırken özellikle önem atmaktadır.
  3. CREATE TABLE, CREATE VIEW, CREATE INDEX ve CREATE TABLESPACE gibi veri tanımlama dili (DDL) deyimlerini saklayın ya da yazdırın. db2look komutu da bu görevi gerçekleştirecektir.
Bu şekilde topladığınız bilgiler, gelecekteki çözümlemeler için bir başvuru noktası sağlar. Dinamik SQL deyimleri için, uygulamanızı ilk kez çalıştırdığınızda bu bilgileri toplayabilirsiniz. Durağan SQL deyimleri için, bu bilgileri bağ tanımlama sırasında da toplayabilirsiniz. Bu bilgileri, yeni bir hizmet düzeyi ya da Db2 yayın düzeyi kuruluşu gibi önemli bir sistem değişikinden önce ya da veritabanı bölümleri ekleme ya da atma ve verileri yeniden dağıtma gibi önemli bir yapılandırma değişikinden önce toplamak özellikle önemlidir. Bunun nedeni, bu tip sistem değişikliklerinin planlara erişmek için olumsuz bir değişikliğe neden olabilir. Erişim planı regresyonu nadir görülen bir durum olsa da, bu bilgilerin kullanılabilir olması performans regresyonlarını daha hızlı çözümlemenize yardımcı olur. Bir performans değişikini çözümlemek için, daha önce topladığınız bilgileri, analizinizi başlattığınızda topladığınız sorgu ve ortamla ilgili bilgilerle karşılaştırın.
Basit bir örnek olarak analiziniz, bir dizinin artık erişim planının bir parçası olarak kullanılmadığını gösterebilir. db2exfmtile görüntülenen katalog istatistikleri bilgilerini kullanarak, dizin düzeylerinin (NDELLER kolon) sayısının, sorgunun veritabanına ilk bağlandığı zamandan daha yüksek olduğunu fark edebilirsiniz. Bundan sonra aşağıdaki eylemlerden birini gerçekleştirmeyi seçebilirsiniz:
  • Dizini yeniden düzenle
  • Çizelgeliz ve dizinleriniz için yeni istatistik toplama
  • Sorgunuzu yeniden bağlarken açıklama bilgilerini topla
Bu işlemlerden birini gerçekleştirdikten sonra, erişim planını yeniden gözden geçiriniz. Dizin bir kez daha kullanılırsa, sorgu başarımı artık sorun olmayabilir. Dizin yine de kullanılmıyorsa ya da başarım yine de sorun değilse, ikinci bir işlem deneyin ve sonuçları inceleyin. Sorun çözülünceye kadar bu adımları yineleyin.

Performans ayarlama çalışmalarını değerlendiriyor

Yapılanış değiştirgelerinin ayarlanması, kap eklenmesi ya da yeni katalog istatistiklerinin toplanması gibi sorgu başarımlarının geliştirilmesine yardımcı olmak için bir dizi işlemi yapabilirsiniz.

Bu alanlardan herhangi birinde bir değişiklik yaptıktan sonra, değişikliğin seçilen erişim planı üzerinde olması durumunda, Explain olanağını kullanarak değişikliği belirleyebilirsiniz. Örneğin, dizin yönergelerine dayalı bir dizin ya da somutlaştırılmış sorgu çizelgesi (MQT) eklerseniz, Explain verileri dizin ya da somutlaştırılmış sorgu çizelgesinin beklendiği gibi kullanılıp kullanılmadığını saptamanıza yardımcı olur.

Explain çıkışı, seçilen erişim planını ve onun göreli maliyetini belirlemenize olanak sağlayan bilgileri sağlasa da, bir sorgu için performans geliştirmeyi doğru bir şekilde ölçmenin tek yolu karşılaştırmalı değerlendirme testi tekniklerini kullanmanıza olanak sağlar.