PGA_AGGREGATE_LIMIT พารามิเตอร์สุดเข้มใน Oracle 12c


photo-1429051781835-9f2c0a9df6e4

สวัสดีครับ สวัสดีในรอบ 4 เดือนเลยทีเดียว หายไปนานมากเลย แต่ยังไงวันนี้ก็มีความรู้ใหม่มาฝากเพื่อนๆ สาวก Oracle DBMS นั่นคือพารามิเตอร์ตัวใหม่ที่ในที่สุด Oracle ก็สร้างมันออกมาเพื่อแก้ปัญหาที่มีมายาวนานกับการกินหน่วยความจำจนหมดเครื่องจากการจัดการ PGA ที่ค่อนข้างยากและท้าทายมากสำหรับ DBA ในเวอร์ชั่นเก่าๆ พารามิเตอร์ที่ผมเอามาฝากวันนี้คือ PGA_AGGREGATE_LIMIT ครับ

PGA_AGGREGATE_LIMIT ทำงานอย่างไร?

Continue Reading

Advertisements

Reorganize: สุดยอดเครื่องมือขอคืนพื้นที่ (2)


วันนี้เรามาต่อวิธีที่ 2 กับการทำ Reorganize database หรือการขอคืนพื้นที่บนฐานข้อมูลกันดีกว่าครับ นั่นคือการ Shrink table นั่นเองครับ อ้างอิงจากตาราง T ที่ผมทำการลบข้อมูลออกไป 500,000 บรรทัดนะครับ เมื่อเราทำการคิวรี่เพื่อทำการตรวจสอบจำนวนบล๊อกผลลัพธ์จะได้ดังนี้

Continue Reading

Reorganize: สุดยอดเครื่องมือขอคืนพื้นที่ (1)


วันนี้ผมมาเขียนบทความนอกสถานที่นิดนึงครับ พอดีวันนี้มาเที่ยวตลอดน้ำดอนหวายพร้อมด้วยกับอากาศที่ร้อนมากทำให้ใจผมร้อนอยากจะเขียนบทความขึ้นมาด้วย (เกี่ยวไหม) เอาละครับมาต่อกันจากคราวที่แล้วครับ ที่ติดเรื่องการแก้ปัญหาเรื่อง Fragment บนฐานข้อมูลไว้ครับ ซึ่งวิธีแก้นั่นไม่ได้ยากเลย เค้าเรียกว่าวิธีนี้ว่าการ Reorganize database เรียกสั้นๆ ว่า Reorg หรือแบบไทยๆ เราเรียกว่าการขอคืนพื้นที่นั่นเองครับ ฮ่าๆ เพื่อไม่ให้เสียเวลามาดูกันเลยครับ

Reorganize database

อ้างอิงจากท้ายบทความที่แล้วนะครับ ที่ผมได้ทดลองทำการลบข้อมูลออกไปครึ่งนึง แต่การคิวรี่ข้อมูลด้วย Full table scan นั้นได้ผลใกล้เคียงเดิมซึ่งเป็นผลมาจาก High water mark บนตาราง T นั้นเอง และผมจะแสดงวิธีในการแก้ปัญหานี้ออกเป็น 2 วิธีและแสดงตัวอย่างให้ดูทีละวิธีครับ

Continue Reading

ORA-01000 Maximum Cursors Exceeded! เจ้าตายแล้ว!


ห่างหายไปนานเลยครับ ฮ่าๆ ช่วงนี้งานชุกมากๆ แต่ยังไงวันนี้ก็มีเรื่องราวดีๆ มาฝากเหมือนเดิม ORA-01000

นี้มัน Error อะไรกันอีกเนี่ย! ORA-01000 maximum open cursors exceeded! เคยเจอกันไหมครับ? เคยหล่ะซิ โอเค วันนี้ผมจะมางัดแงะแกะเกา Error message ตัวนี้ให้ทุกคนเข้าใจตรงกันนะครับ!

ORA-01000 maximum open cursors exceeded
Cause: A host language program attempted to open too many cursors. The initialization parameter OPEN_CURSORS determines the maximum number of cursors per user.
Action: Modify the program to use fewer cursors. If this error occurs often, shut down Oracle, increase the value of OPEN_CURSORS, and then restart Oracle.

Continue Reading

ORA-1652 TEMP เต็ม! ทำไงดีอ่ะ?


สวัสดีครับ เดียวเริ่มตั้งแต่ช่วงเดือนหน้าผมอาจจะมีเรื่องมาแชร์ทุกคนมากขึ้นครับ เนื่องจากจะเริ่มทำการเตรียมตัวสอบเพื่อเอา Oracle 11g Performance Tuning Certified Expert ถ้าเจอเรื่องอะไรน่าสนใจก็จะเอามาลงแบ่งปันกันเหมือนเดิมครับและสำหรับวันนี้ผมขอเกริ่นนำกันก่อนละกันนะครับ เราจะทำอย่างไรดีถ้า Temporary tablespace เต็ม? ซึ่งเราอาจจะทราบว่ามันจะเกิด ORA-1652: unable to extend temp segment ใน Alert log ขึ้น แล้วทำไงดีหละ? มันเต็มไปแล้วอ่ะ… วันนี้ผมเอาความรู้เกี่ยวกับ Temporary tablespace วิธีการมอนิเตอร์และรับมือกับปัญหา ORA-1652 มาฝากครับ

Continue Reading

ORA-00054 Resource Busy มันคืออะไรกัน!?


หลายคนคงเคยเจอปัญหาน่าปวดหัวเกี่ยวกับ Error ที่มี Code ว่า ORA-00054 หลังจากที่เราพยายาม Execute DDL command บนตารางใดๆ ซักตารางนึง ซึ่งวันนี้ผมจะมาขยายความให้ชัดเจนว่าเจ้า Error ตัวนี้มันเกิดมาจากอะไร? และวิธีแก้ไข/วิธีเลี่ยงมีอะไรบ้างครับ…

ORA-00054: resource busy and acquire with NOWAIT specified.
Cause: Resource interested is busy.
Action: Retry if necessary.

Continue Reading