ฉันต้องการเปรียบเทียบการสืบค้น SQL บางข้อฐานข้อมูลของฉัน PostgreSQL มีวิธีที่ฉันสามารถเวลา SQL แบบสอบถามใช้ใด ๆpsql
?
ฉันต้องการเปรียบเทียบการสืบค้น SQL บางข้อฐานข้อมูลของฉัน PostgreSQL มีวิธีที่ฉันสามารถเวลา SQL แบบสอบถามใช้ใด ๆpsql
?
คำตอบ:
สามารถเปิดใช้งานการกำหนดเวลาด้วย\timing
ที่พร้อมต์ psql (ดังที่คาเลบกล่าวไว้แล้ว)
หากคุณอยู่ที่ 8.4 หรือสูงกว่าคุณสามารถเพิ่มอาร์กิวเมนต์เปิด / ปิดเป็นทางเลือก\timing
ซึ่งจะมีประโยชน์หากคุณต้องการตั้งเวลาในไฟล์. psqlrc - จากนั้นคุณสามารถตั้งค่า\timing on
อย่างชัดเจนในสคริปต์โดยที่ธรรมดา\timing
จะสลับกัน มันปิด
เวลาที่\timing
ส่งคืนยังรวมถึงเวลาแฝงเครือข่ายหากคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล
เมื่อคุณไม่ต้องการสิ่งนั้นและไม่ต้องการเอาต์พุตคิวรีให้ใช้งานได้ดีกว่าEXPLAIN ANALYZE
ซึ่งผลลัพธ์แผนการเคียวรีด้วยตัววางแผนประมาณพร้อมกับเวลาดำเนินการจริง
ตัวอย่างเช่น, EXPLAIN ANALYZE SELECT foo from bar ;
explain analyze
อัตราผลตอบแทนที่ประมาณสองเท่าของสิ่งที่ฉันเห็นเมื่อใช้\timing
ซึ่งตรงข้ามกับสิ่งที่ฉันคาดหวังจากความคิดเห็นที่นี่เกี่ยวกับเวลาแฝงของเครือข่าย ฉันสงสัยว่ามีค่าใช้จ่ายในการดำเนินการปกติของanalyze
ที่เพิ่มไปยังเวลาแบบสอบถาม จากเอกสารที่ฉันคิดว่าEXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM bar
จะให้ข้อมูลเวลาที่มีประโยชน์มากขึ้น ดูpostgresql.org/docs/9.6/static/sql-explain.htmlเพื่อดูรายละเอียด