Postgres อธิบายค่าใช้จ่าย

Postgres Xthibay Kha Chi Cay



Postgres เป็นระบบฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์สที่มีประสิทธิภาพและใช้กันอย่างแพร่หลาย โดยมีชื่อเสียงในด้านความทนทาน ฟังก์ชันการทำงาน และประสิทธิภาพ

หนึ่งในเครื่องมือที่ทำให้ Postgres มีประสิทธิภาพที่โดดเด่นคือคำสั่ง EXPLAIN ซึ่งให้รายละเอียดเกี่ยวกับแผนการดำเนินการของแบบสอบถาม SQL

คำสั่ง EXPLAIN คืออะไร?

คำสั่ง EXPLAIN แสดงแผนการดำเนินการที่ตัววางแผน PostgreSQL สร้างขึ้นสำหรับคำสั่ง SQL ที่กำหนด







ซึ่งรวมถึงข้อมูลเกี่ยวกับค่าใช้จ่ายโดยประมาณของการดำเนินการค้นหาแต่ละขั้นตอน การตรวจสอบค่าใช้จ่ายเหล่านี้ทำให้เราเข้าใจได้ว่าเหตุใดการค้นหาจึงทำงานช้าและจะเพิ่มประสิทธิภาพได้อย่างไร



PostgreSQL อธิบายค่าใช้จ่าย

เราใช้คำสั่ง EXPLAIN เพื่อดึงข้อมูลเกี่ยวกับข้อความค้นหาที่กำหนดเป็นหลัก คำสั่งจะแสดงข้อมูลบางอย่างเกี่ยวกับแบบสอบถาม



ยกตัวอย่างแบบสอบถามที่แสดงดังต่อไปนี้:





เลือก f.title, c.name
จากภาพยนตร์เรื่อง ฉ
เข้าร่วม film_category fc บน f.film_id = fc.film_id
เข้าร่วมหมวดหมู่ c ON fc.category_id = c.category_id;

หากเราเรียกใช้คำสั่ง expand ในการรวมอย่างง่ายก่อนหน้านี้:

อธิบาย SELECT f.title, c.name
จากภาพยนตร์เรื่อง ฉ
เข้าร่วม film_category fc บน f.film_id = fc.film_id
เข้าร่วมหมวดหมู่ c ON fc.category_id = c.category_id;

เราควรได้ผลลัพธ์ดังที่แสดงต่อไปนี้:



คุณอาจสังเกตเห็นว่าสำหรับแต่ละขั้นตอนการสืบค้น PostgreSQL จะส่งคืนค่าใช้จ่ายโดยประมาณของแบบสอบถามนั้น

  1. startup_cost – แสดงค่าใช้จ่ายโดยประมาณเพื่อเริ่มต้นการดำเนินการก่อนที่จะสามารถเริ่มเอาต์พุตแถวได้
  2. total_cost – ต้นทุนรวมในการดึงแถวทั้งหมด
  3. แถว – กำหนดจำนวนแถวโดยประมาณที่แบบสอบถามส่งคืน
  4. ความกว้าง – กำหนดจำนวนไบต์เฉลี่ยของแถวทั้งหมดที่ดำเนินการส่งคืน

ต้นทุนการสืบค้นใน PostgreSQL จะแสดงเป็นหน่วยตามอำเภอใจ ซึ่งกำหนดโดยพารามิเตอร์ต้นทุนที่ตั้งค่าไว้ในการกำหนดค่าเซิร์ฟเวอร์

คีย์ของพารามิเตอร์เหล่านี้คือ seq_page_cost ซึ่งจะกำหนดต้นทุนของการดึงหน้าดิสก์ที่ไม่ได้อยู่ในแคช

หากคุณใช้ pgAdmin คุณสามารถใช้คุณลักษณะ 'อธิบายวิเคราะห์' เพื่อรับไดอะแกรมที่อ่านง่ายขึ้นและนำเสนอได้ดีสำหรับคำสั่งอธิบาย ตัวอย่างเช่น:

จากนั้นคุณสามารถคลิกที่แต่ละขั้นตอนเพื่อดูสถิติและค่าใช้จ่ายโดยประมาณ

การเพิ่มประสิทธิภาพการค้นหาตามต้นทุน

เมื่อเพิ่มประสิทธิภาพการค้นหาของคุณ สิ่งสำคัญคือต้องเข้าใจว่าต้นทุนที่ต่ำกว่ามักจะหมายถึงการดำเนินการที่เร็วขึ้น ดังนั้น คุณสามารถแก้ไขข้อความค้นหาของคุณโดยมีค่าใช้จ่ายที่ต่ำลง
นี่คือปัจจัยบางประการที่ควรพิจารณา:

ใช้ดัชนีตาราง – ดัชนีช่วยลดต้นทุนของคำค้นหาตามการค้นหาได้อย่างมากโดยรักษาโครงสร้างข้อมูลที่ช่วยให้ค้นหาได้เร็วขึ้น

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

บทสรุป

เราได้สำรวจแนวคิดของต้นทุนในคำสั่ง PostgreSQL ANALYZE เราได้กล่าวถึงความหมายของเอาต์พุตคำสั่งและวิธีใช้เอาต์พุตต้นทุนเพื่อวิเคราะห์วิธีที่มีประสิทธิภาพสูงสุดในการเรียกใช้คิวรีที่กำหนด