คนที่ทำงานเป็น oracle dba มักจะเจอกับคำว่า latch contention, เรามาทำความเข้าใจกับคำนี้กันครับ
ในส่วนของ Latch Contention ทำความเข้าใจกับความหมายก่อน
Latch สำหรับ Oracle แล้วเป็นกลไกแบบ serialize
ที่ใช้ป้องกันพื้นที่ใน Shared Memory (SGA)
ตัวอย่างง่ายๆ ก็คือ Latch ทำหน้าที่ป้องกันไม่ให้ 2 processes ทำการ update ในพื้นที่ SGA เดียวกัน ซึ่งอาจจะทำให้เกิดการเสียหายได้
เนื่องจาก Latch เป็น Serialize เพราะงั้น มันจะรองรับได้ทีละ 1 process
เมื่อ process พบว่า latch ยังไม่ว่าง ก็จะทำการ request ใหม่เรื่อยๆ
กลไกการทำงานตรงส่วนนี้ จะเร็วมาก (คิดเป็นนาโนวินาทีได้เลย)
เพราะงั้นความถี่ของ latch request จะสูงมาก
Latch ที่มักจะกระทบ Performance คือ (พวกนี้อยู่ใน SGA นะ)
- Library cache latches: protect
- Redo copy/redo allocation latches
- Shared pool latches
- Cache buffers chain latches
การพิจารณา Latch Contention ก็จะพิจารณาจาก Miss Rate (Miss from latch request) หรือบาง Script อาจจะใช้วิธีพิจารณาจากเวลาที่ใช้ในการรอ Latch เป็นต้น
No comments:
Post a Comment