วันนี้จะมาว่าด้วยเรื่องของ Share Pool Tuning ครับ Share Pool ใช้พื้นที่ในส่วนของ SGA ที่เรากำหนดไว้ครับ สามารถย้อนกลับไปอ่านในบทความแรกๆของผมได้ว่ามันเกี่ยวข้องกันอย่างไร
ผมสรุป Share Pool มาเพื่่อให้เข้าใจง่ายดังนี้ครับ
– Share Pool เป็นพื้นที่ในการเก็บคำสั่ง SQL ที่ USER ส่งเข้ามาทำงานใน DB และใช้เก็บพวกข้อมูลของ Dictionary ต่างๆ ที่ถูกใช้งานล่าสุด ซึ่งหากเราต้องการใช้งานข้อมูลนี้อีกจะไม่ต้องไปอ่านจากไฟล์ใหม่ สามารถอ่านได้จาก Memory ส่วนนี้ไปใช้ได้เลย
******** Shared Pool Size (Execution Misses) ********
select sum(pins) “Executions”,
sum(reloads) “Cache Misses Executing”,
(sum(reloads)/sum(pins)*100) “% Ratio”
from v$librarycache
**************************************************
Statement นี้ ใช้สำหรับตรวจสอบดูว่า ณ สถานะ parameter SGA , Shared pool size ปัจจุบันเหมาะสมหรือไม่ กล่าวคือ ใช้ตรวจสอบ % ความคลาดเคลื่อนในการค้นหาภายใน Shared Pool
เช่น
>> Cache Misses Executing = 1 %
:: USER ใช้งานและมีการใช้คำสั่ง SQL เข้ามา ตรวจพบทันทีบน Share Pool 99% ไม่พบ 1% จากการเก็บสถิติการค้นหา ณ parameter ปัจจุบัน ซึ่งถือว่า ดีมากๆ ( พลาดแค่ 1% อะไรจะขนาดนั้น )
ค่าที่เหมาะสมกับการปรับ และปรับอะไรนั้น ผมกำหนดไว้ประมาณนี้ครับ
#################### NOTE: ####################
If % Ratio is above 1%, increase SHARED_POOL_SIZE.
#################### NOTE: ####################
** ซึ่งการ Tuning นี้ก็จะทำให้ DB ของเรา ทำงานได้อย่างมีประสิทธิภาพขึ้นแน่นอนครับ
** อย่าลืมการวางแผนในการ Tuning ประจำปีไว้ด้วยครับ เพื่อประสิทธิภาพที่เหมาะครับ
