Postgres: ฉันจะดูคำสั่ง SQL ทั้งหมดที่ดำเนินการโดยเซิร์ฟเวอร์ฐานข้อมูลได้อย่างไร


23

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


ในคำอธิบายต่อไปนี้มีการอธิบายเกี่ยวกับวิธีดู
คิวรีที่

คำตอบ:


27

ตัวเลือกปรับแต่งที่คุณกำลังมองหาคือlog_statement = "all"(หากคุณต้องการข้อความสั่ง) หรือlog_min_statement_duration = <some number>หากคุณอยู่หลังข้อความค้นหา "ช้า" (สำหรับค่าบางส่วนของ "ช้า") ดูhttp://www.postgresql.org/docs/current/static/runtime-config-logging.htmlสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่าการบันทึก


1
การบันทึกข้อความทั้งหมดเป็นตัวทำลายประสิทธิภาพ (ตามที่ระบุในเอกสารอย่างเป็นทางการ) อย่างไรก็ตาม 8.4 มีฟีเจอร์ที่ดีในexplain analyzeการทำให้การสืบค้นช้าลงเมื่อมีการดำเนินการคุณอาจต้องการเริ่มต้นการทดสอบโดยที่ 8.4 ยังไม่ออก แต่เป็นตัวเลือกที่ดีที่จะรู้ว่าเกิดขึ้นในช่วงเวลาของการดำเนินการถ้าวิเคราะห์อธิบายผลลัพธ์ได้คุณอาจพบปัญหาเกี่ยวกับ I / O หรือขอบเขต CPU แต่อย่างน้อยคุณก็รู้ว่ามันไม่ใช่ตัวเอง
serverhorror

5
ฉันชอบตัวเลือก log_statement = 'mod' มันจะแสดงเฉพาะสร้างอัพเดตและลบและข้ามคำสั่งที่เลือกทั้งหมด ดีมากถ้าคุณพยายามคิดว่าโค้ดใดบ้างที่ปรับเปลี่ยนฟิลด์
Don Kirkby

5

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

ดูauto_explainในเอกสารประกอบ


โปรดทราบว่า "auto_explain" เป็นโมดูลดังนั้นจึงไม่ทำงานบนฐานข้อมูล AWS RDS Postgres :(
johntellsall

1
@johntellsall RDS รองรับauto_explainอยู่ในรายการของโมดูลที่มีความสุข ดูเอกสารที่docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
Craig Ringer

3

แน่นอนคุณสามารถตรวจสอบคิวรีที่ช้าที่สุดได้ด้วยตัวเอง แต่ฉันแนะนำให้คุณใช้pgFouine - เครื่องมือวิเคราะห์บันทึก PostgreSQL ติดตั้งง่ายและมีประโยชน์จริงๆ

รายงานตัวอย่าง: ที่นี่และที่นี่


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