ตัวแสดงผล PostgreSQL EXPLAIN

แปลง JSON ของ EXPLAIN ANALYZE เป็นแผนผังต้นไม้ที่อ่านง่าย พร้อมเวลา การประมาณ และบัฟเฟอร์

อินพุต

วางเอาต์พุตของ EXPLAIN (FORMAT JSON) รองรับเอาต์พุต psql ที่มีหัวข้อ QUERY PLAN และเครื่องหมาย + ด้วย

สูงสุด 5 MB วิเคราะห์ในเบราว์เซอร์ของคุณและไม่ถูกบันทึก

สรุป

วางแผน EXPLAIN ของ PostgreSQL

รันคำสั่งด้านล่าง แล้ววางผลลัพธ์ JSON ทางซ้าย หรือโหลดตัวอย่าง

คำสั่งที่แนะนำ

EXPLAIN (
  ANALYZE,
  BUFFERS,
  SETTINGS,
  WAL,
  VERBOSE,
  FORMAT JSON
)
SELECT ...;

ANALYZE จะรันคำสั่งจริง ให้ครอบ INSERT, UPDATE หรือ DELETE ด้วย BEGIN และ ROLLBACK

แผนการทำงาน

แผนผังต้นไม้จะแสดงที่นี่หลังวางแผนที่ถูกต้อง

กำลังรอแผน EXPLAIN

สิ่งที่แสดง

PostgreSQL EXPLAIN Visualizer แปลงเอาต์พุต EXPLAIN (FORMAT JSON) เป็นแผนผังต้นไม้ที่ยุบได้ ตารางโหนดที่เรียงลำดับได้ และ JSON ต้นฉบับที่จัดรูปแบบแล้ว ส่วนสรุปแสดงเวลาประมวลผลและเวลาวางแผน จำนวนโหนด โหนดที่ช้าที่สุด การประมาณแถวที่คลาดเคลื่อนมากที่สุด และบล็อกที่อ่านจากนอก shared buffers เลือกโหนดใดก็ได้เพื่อดูทุกฟิลด์ที่ PostgreSQL รายงาน

วิธีเก็บแผน

รัน EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON) ตามด้วยคิวรีของคุณ แล้ววางผลลัพธ์ เอาต์พุต psql ที่มีหัวข้อ QUERY PLAN เครื่องหมายต่อบรรทัด + และบรรทัดท้ายที่บอกจำนวนแถวจะถูกทำความสะอาดอัตโนมัติ ANALYZE จะรันคำสั่งจริง จึงควรครอบ INSERT, UPDATE และ DELETE ด้วย BEGIN และ ROLLBACK แผนที่ไม่มี ANALYZE ยังแสดงต้นทุนและการประมาณ แต่จะข้ามข้อสังเกตที่อิงเวลา

วิธีคำนวณตัวชี้วัด

เวลารวมคือเวลาจริงต่อรอบคูณจำนวนรอบ ใต้โหนด Gather จะหารด้วยจำนวนโปรเซสเพื่อไม่ให้นับงานแบบขนานซ้ำ เวลาของตัวเองหักเวลารวมของโหนดลูกและไม่ต่ำกว่าศูนย์ จึงเป็นค่าประมาณสำหรับแผนแบบขนาน CTE, InitPlan และ SubPlan ตัวคูณการประมาณเปรียบเทียบแถวจริงกับแถวที่ประมาณต่อรอบ จำนวนบัฟเฟอร์ใน EXPLAIN รวมโหนดลูกไว้ด้วย ค่าของตัวเองจึงหักของลูกออก ขนาดบล็อกถือว่าเป็นค่าเริ่มต้น 8 kB

ข้อสังเกตและข้อจำกัด

ข้อสังเกตคือสิ่งที่พบพร้อมตัวเลขจากแผน ได้แก่ การประมาณแถวที่คลาดเคลื่อนมาก Nested Loop ที่ฝั่งในทำงานหลายครั้ง การสแกนแบบลำดับที่ทิ้งแถวส่วนใหญ่ การเรียงลำดับและแฮชที่ล้นไปดิสก์ ไฟล์ชั่วคราว การอ่านจากนอก shared buffers และโหนดที่ใช้เวลาประมวลผลเป็นส่วนใหญ่ คำแนะนำมีความระมัดระวังและไม่ระบุดัชนีเฉพาะที่ควรสร้าง เพราะแผนเพียงอย่างเดียวไม่บอกความถี่ของคิวรี ภาระการเขียน หรือการกระจายของข้อมูล

ความเป็นส่วนตัว

แผนอาจเปิดเผยชื่อตาราง ชื่อสคีมา เงื่อนไข และค่าลิเทอรัล แผนถูกแยกวิเคราะห์ในเบราว์เซอร์ของคุณ แผนขนาดใหญ่ทำงานใน Web Worker และจะไม่ถูกอัปโหลด บันทึกล็อก หรือจัดเก็บ ระบบจำเฉพาะมุมมองที่เลือก (ต้นไม้ ตาราง หรือข้อมูลดิบ)

CodingTool เปิดตัวอย่างเป็นทางการบน

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch