สถานการณ์
Parameter Snapshot พบ pga_aggregate_target เพียง 32 MiB ขณะที่ระบบทำงานหนักด้วย Workarea ที่ต้องใช้หน่วยความจำมาก ทำให้เกิด direct path read/write temp รอ I/O ที่ Disk สูงถึง 90%.
🚨
หลักฐานที่ยืนยันแล้ว
PGA Target Advice แสดง Over‑allocation
- 32 MiB (ค่าปัจจุบัน) ESTD_OVERALLOC_COUNT=993
- 128 MiB ประเมิน 540 ครั้ง; 192 MiB 160 ครั้ง
- 256 MiB ประมาณ 0 ครั้ง → แสดงว่าขนาดนี้เพียงพอสำหรับ workload
🔍
การวิเคราะห์
Advisor ชี้ว่า Workarea memory ไม่พอ
ยืนยันแล้ว
PGA target มี Estimated Over‑allocation
ค่าไม่เป็นศูนย์หมายถึง target ไม่พอรองรับ Workarea workload ที่บันทึกไว้
เป็นไปได้
Workarea concurrency ทำให้ PGA target ไม่พอ
Sort, Hash Join หรือ Group By ใช้ Temp space มาก ควรตรวจ histogram, extra bytes read/write
🛠️
แนวทางตรวจสอบอย่างปลอดภัย
ปรับ PGA ทีละขั้น
- เก็บ Baseline Workarea executions, extra bytes, DB Time, Temp I/O
- ตรวจระบบปฏิบัติการ Memory, paging, headroom
- ทดลองเพิ่ม PGA ใช้ Advisor เป็นข้อมูลประกอบ เปลี่ยนค่า
PGA_AGGREGATE_TARGETในช่วงควบคุมแล้วเปรียบเทียบ - แยก SGA จาก PGA อย่าลด Java Pool หรือเพิ่ม Buffer Cache เพียงอย่างเดียว
💡
ผลลัพธ์
ระบบดีขึ้นโดยไม่ใช้สูตร Memory ตายตัว
ผลลัพธ์หลังปรับ PGA target
Disk I/O ลดจาก 90% เหลือ 30% ระบบตอบสนองเร็วขึ้น 2‑3 เท่า งานที่เคยช้าแล้วทำงานได้ตามคาด