Library Cache Lock ระหว่าง Grant/Revoke จริงรึ!?


สวัสดีครับห่างหายกันไปนานเลย ไม่ได้หายไปไหนไกลครับ ช่วงที่ผ่านมาก็ไปนั่งสร้างโปรแกรมๆ นึงขึ้นมาเพื่อใช้ทำ Performance tuning ในองค์กรครับ พอดีวันก่อนบังเอิ๊ญบังเอิญมีรีเควสเข้ามาจากลูกค้าว่า อยากได้ Privileges บนฐานข้อมูล แต่มันติดปัญหาตรงที่ว่า ทุกๆ ครั้งที่เราจะทำการ Grant/Revoke privilege นั้นมันจะไปมีผลกระทบต่อ Performance ของระบบทางอ้อมๆ ผมจึงบอกลุกค้าไปว่า “พี่ครับ เดียวผมทำให้ตอนเย็นหลังเลิกงานนะ…” หลายคนคงงงว่า “อ้าว แค่ขอสิทธิธรรมดาเองนะ ทำไมต้องทำตอนเย็นด้วยละ” ผมเฉลยให้ก็ได้ครับ… ไอตัวปัญหาก็คือ Library cache lock นั่นเอง

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