Dizin önerileriyle birlikte EXPLAIN


10

PostgreSQL EXPLAIN'i analiz edebilecek ve sorguyu hızlandıracak gerekli indeksleri önerebilecek herhangi bir (tercihen açık kaynaklı) yazılım var mı?

Yanıtlar:


6

Kelimenin tam anlamıyla birkaç dakika önce buldum: http://explain.depesz.com/ . EXPLAIN ANALYZE'nizin sonuçlarını yapıştırırsınız ve sorunların nerede olabileceğini gösterir (hatta renk kodludur).

Yardım bölümünden ...

expla.depesz.com yavaş sorgular için gerçek bir neden bulmak için bir araçtır. Genellikle, EXPLAIN ANALYZE sorgusu kullanılır; ve çıktıyı okuyun. Sorun, çıktının tüm bölümlerinin herkes tarafından kolayca anlaşılamaması ve 17.3ms'de çalışan düğümün 100ms'de çalışandan daha hızlı veya daha yavaş olup olmadığı her zaman açık değildir - ilkinin yürütüldüğü gerçeği 7 zamanlar. Siteyi kullanmak için, sadece ilk sayfasına gidin ve oraya yapıştırın, psql'nizden analiz çıktısını açıklayın. Bu çıktı böyle görünebilir. Yükledikten sonra, ayrıştırılmış ve güzel (iyi, en azından benim için güzel :) gösteren sayfalara yönlendirileceksiniz. Bu böyle görünebilir. Yan not: renklendirilmiş çıktı için url kalıcıdır, bu yüzden bunu başkalarına göstermek için kullanabilirsiniz - örneğin, irc kanalındaki #postgresql freenode üzerindeki güzel adamlar için. Bu grafik önemli şeyleri işaretlemek için 4 renk kullanır: beyaz arka plan - her şey güzel sarı arka plan - verilen düğüm kahverengi arka plan endişe vericidir - verilen düğüm kırmızı arka plan daha endişe vericidir - verilen düğüm çok endişe vericidir Hangi renk kullanılır, hangi moda bağlı olarak seçilir "Özel", "Kapsayıcı" veya "Satır X" kullanacaksınız.


1

Postgres için bunu algoritmik olarak yapan herhangi bir aracın farkında değilim ve bence insan beyni (ve genellikle bir geliştirme ortamında biraz deneme) gerçekten tek uygun araçtır. Sorgu planlayıcının, dizininizin kullanmaya değer olduğunu düşünüp düşünmeyeceği dahil olmak üzere birçok faktör vardır - kurulumunuzun sorgu planlayıcısı ayarlarını ve ilgili tablodaki boyut / istatistikleri ayarlama yöntemiyle belirlenen bir şey ( s).

Yapabileceğim en iyi öneri bir EXPLAIN ANALYZE( ANALYZEönemli - size sorgu ve alt plan çalışma süreleri verecektir) yapmak, sonuçlara kendiniz bakmak ve ilk gördüğünüz en büyük sayıya saldırmaktır. Muhtemelen EXPLAIN çıktısını parçalamak için bir ayrıştırıcı yazabilirsiniz (özellikle JSON çıktısı ile 9.0'da), ancak henüz bununla mücadele eden kimseyi bilmiyorum (temelde MS-SQL için optimize edicilerin yaptığı şey budur ...)


0

Üretim derecesi yok, ama meraklı için böyle bir şey uygulamak için bir araştırma projesi vardı / vardı. "PostgreSQL dizin danışmanı" için arama yapın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.