การทำความเข้าใจรูปแบบเวลาของคำสั่งอธิบาย - Postgres


14

เมื่อฉันเรียกใช้คำสั่งอธิบายวิเคราะห์ในแบบสอบถามที่ระบุฉันมีเวลายากที่จะตีความค่าเวลาเอาท์พุท ตัวอย่างเช่น (เวลาจริง = 8163.890..8163.893) ทศนิยมภายในแสดงถึงอักขระที่ซ้ำกันหรือไม่? ขออภัยนี่อาจเป็นคำถามที่ไม่มีเสียงรบกวน แต่ฉันต้องการตรวจสอบให้แน่ใจว่าฉันตีความผลลัพธ์อย่างถูกต้อง

   ->  GroupAggregate  (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)

คำตอบ:


19

actual time=8163.890..8163.893 วิธี

การเริ่มต้นขั้นตอนนั้น ("เริ่มต้น") ใช้เวลา 8163.890ms การ
เรียกใช้ขั้นตอนทั้งหมดใช้เวลา 8163.893ms

ดังนั้นในกรณีนั้นเกือบจะเสร็จงานในช่วงเริ่มต้นของขั้นตอนนั้น

แก้ไข :
ตรรกะเดียวกันคือ "ใช้" กับข้อมูลต้นทุน

cost=2928781.21..2929243.02 วิธีการ:

ค่าใช้จ่ายในการเริ่มต้นขั้นตอนนี้ถูกประมาณไว้ที่: 2928781.21
ค่าใช้จ่ายในการดำเนินการตามขั้นตอนถูกประมาณไว้ที่: 2929243.02

(โปรดทราบว่า "ต้นทุน" ไม่มีหน่วย - เป็นค่าโดยพลการ)

นอกจากนี้ยังอธิบายได้ที่นี่: http://www.postgresql.org/docs/current/static/using-explain.html


ขอบคุณสำหรับข้อมูลและลิงค์ - ฉันพบว่าเอกสารนี้มีประโยชน์แม้ว่าจะค่อนข้างล้าสมัย
Jmoney38

ขอบคุณสำหรับลิงค์ เอกสารไม่ล้าสมัยจริงๆ รุ่นที่ใหม่กว่าของ PostgreSQL จะแสดงข้อมูลเพิ่มเติมในแผน แต่ยังคงใช้หลักการพื้นฐาน
a_horse_with_no_name

คุณตีความการวิเคราะห์อธิบายด้วยวิธีนี้ในลูปซ้อนกัน(actual time=0.002..0.002 rows=0 loops=119878)อย่างไร: ฉันคิดว่าค่าเฉลี่ยต่อลูปมีการปัดเศษเป็นศูนย์แถวซึ่งไม่ช่วยเหลือ แต่ครั้งนี้หมายความว่าต้นทุนการดำเนินการเป็นเรื่องเล็กน้อยเพื่อให้มันประกอบด้วยค่าเริ่มต้นทั้งหมดหรือไม่
Davos

5

หมายเลขแรกคือระยะเวลาที่ใช้ในการส่งคืนแถวแรกในขั้นตอนนั้น ตัวเลขที่สองคือระยะเวลาที่ใช้ในการส่งคืนแถวสุดท้าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.