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


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

Continue Reading

Advertisements

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


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

Reorganize database

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

Continue Reading

Fragment และผลกระทบต่อ Full table scan


ผมว่าหลายๆ คนเคยเจอเหตุการณ์ประมาณว่า batch ที่ทำงานในตอนกลางคืนช้า โดยสิ่งที่พยายามแก้ไขไปนั่นคือการทำการลบข้อมูลเก่าๆ ทิ้งไปเพื่อทำให้ข้อมูลน้อยลง โดยหลักความคิดแล้วน่าจะช่วยทำให้เร็วขึ้นได้จริง… แต่มันไม่เป็นอย่างนั้นหนะซิ เพราะเมื่อเราทำการลบข้อมูลจากตารางไปแล้วแม้จะเยอะแค่ไหนก็ตาม แต่ในตัว Physical level ของฐานข้อมูลเองยังมองว่าพื้นที่ว่างที่เคยเก็บข้อมูลของตารางนั้นๆ ยังอยู่ เราเรียกพื้นที่ว่างเหล่านั้นว่า Fragment นั่นเองครับ

Continue Reading