İçindekiler
Veritabanlarıyla çalışırken, artık sadece bizi ilgilendiren bilgiyi elde etmek değil, onu nasıl elde ettiğimizin de önemli olduğu bir nokta var, çünkü sorgunun yapısına bağlı olarak sorgumuzun tükettiği kaynakların miktarı olacaktır, bunun için PostgreSQL bize teklif ediyor AÇIKLAMAK sorgumuzun nasıl çalıştığını ve temsil ettiği her şeyi gördüğümüz bir araç.AÇIKLAYIN ve AÇIKLAYIN ANALİZ
Bu iki araç, gerçekleştirdiğimiz sorguların performans sorunlarını ararken temel dayanaktır, kullanışlı olmalarına rağmen, yeni bir şey değildirler, çünkü bunlara dahil edilmiştir. PostgreSQL İlk yıllarından beri, ancak bu onların eski veya modası geçmiş oldukları anlamına gelmez, aksine, araç tarafından atılan sonuçlar da dahil olmak üzere sorguların yürütülmesi hakkında en ayrıntılı raporları üretebilen bir araç haline gelecek kadar olgunlaşmışlardır. gibi biçimlerde elde edilmiştir. XML veya JSON diğer araçlarla daha sonra analiz için.
İçinde pgAdmin sonucunun bir grafiğini elde etmek için bir seçeneğimiz var AÇIKLAMAK böylece sayıları analiz etmek yerine bir grafik görebilir ve bu şekilde sorgunun sorunlarını ve iyileştirme fırsatlarını daha kolay tespit edebiliriz.
EXPLAIN ve EXPLAIN ANALYZE arasındaki farklar
Belki her iki terim de aynı şeymiş gibi kullanılıyor, ancak aralarında farklarımız var, örneğin AÇIKLAMAK sorgu planlayıcının sorguyu nasıl yürütmeyi planladığı hakkında bize bir fikir verir, ancak bunun yerine yürütmez. AÇIKLAMA ANALİZİ bunu uygularsanız ve bize beklenen performans ile uygulamada elde edilen gerçek performans arasında bir karşılaştırma verir. Başlatırken AÇIKLAMAK aracılığıyla pgAdmin EXPLAIN ve EXPLAIN ANALYZE arasında seçim yapabiliriz; bu, onları seçtiğimizde bize her birinin sonucunu verecektir.
Bu aracın nasıl kullanılacağına dair bir örnek görelim, bunun için kullanacağız AÇIKLAMA ANALİZİ, aşağıdaki kodu görelim:
EXPLAIN ANALYZE sola SEÇ (tract_id, 5) İlçe_kodu olarak, SUM (hispanic_veya_latino) olarak toplam, SUM (beyaz_yalnız) olarak tot_white, SUM (birleştirmek (hispanic_veya_latino, 0) - birleştirmek (beyaz_yalnız, 0)) census.hisp_ ilçe_kodu ***** BY ilçe_kodu;
Alanları topladığımız, alanlardan birine göre gruplandırdığımız ve sıraladığımız çok basit bir sorgu, performans analizi sonucunda elde edeceğimiz şey şu olacak:
GroupAggregate (maliyet = 111.29… 151.93 satır = 1478) (gerçek zaman = 6.099… 10.194 satır = 14 döngü = 1) -> Sıralama (maliyet = 111.29… 114.98 satır = 1478) (gerçek zaman = 5.897… 6.565 satır = 1478 döngü = 1) Sıralama Anahtarı: ("sol" ((tract_id) :: metin, 5)) Sıralama Yöntemi: hızlı sıralama Bellek: 136kB -> hisp_pop'ta Sıralı Tarama (maliyet = 0.00… 33.48 satır = 1478) (gerçek zaman = 0.390… 2.693 satırlar = 1478 döngü = 1) Toplam çalışma süresi: 10.370 ms
Okumaya biraz çaba harcarsak, sonuçları okumamız giderek kolaylaşır, ancak fazla zamanımız yoksa veya sonuç çok kapsamlıysa, grafiği her zaman görebiliriz.
Gördüğümüz gibi, sonuçları grafiksel düzeyde görmek daha hızlıdır, ideal olan her iki aracı da kullanmak ve her iki bakış açısını tamamlamaktır, aynı bilgi sadece farklı açılardandır, sadece çalışmak isteyen saflar olacaktır. komut konsolu ile ve sorun değil.Ancak, kapsamlı bir veritabanı uzmanı işini geliştirmek için emrindeki tüm araçları kullanmalıdır.
Bununla öğreticiyi bitiriyoruz, bu araçların kullanımıyla, sorgularımızı hızlı yapmayan nedenleri veya sorgumuzu optimize etmek için iyileştirme fırsatlarını zaten tespit edebilecek bir konumda olacağız.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.