GATHER_PLAN_STATISTICS hint เครื่องมือช่วยเหลือสำหรับนัก Tuning SQL


GATHER_PLAN_STATISTICS

มันเป็นสิ่งที่เราต้องให้ความสนใจเป็นอย่างมากหลังจากที่เราทำการ Tuning SQL เพื่อเป็นการยืนยันผลลัพธ์ว่า Optimizer ทำงานได้อย่างถูกต้องหรือไม่? แต่เราจะรู้ได้ยังไงหล่ะ?

เราจะรู้ได้อย่างไรว่า Cardinality Estimates บน Execution plan นั้นแม่นยำเพียงพอหรือไม่?

มันน่าจะง่ายกว่าถ้าเราจะตอบคำถามนี้ด้วยตัวอย่างข้างล่างนี้ครับ ผมจะใช้คิวรี่จากบทความที่แล้วมาช่วยในการแสดงตัวอย่างให้ดูนะครับ

Continue Reading

Advertisements

ว่าด้วยเรื่องของ NOLOGGING กับการใช้งาน


NOLOGGING คืออะไร?

NOLOGGING คือ ออฟชั่นนึงบนตารางที่ช่วยทำให้การ INSERT หรือการสร้างอินเด็กซ์มีความเร็วมากขึ้นกว่าปกติ เป็นเพราะว่ามันจะไม่ทำการเขียน Redo log นั่นเอง แต่ความเร็วที่เพิ่มขึ้นก็ต้องแลกมาด้วยความอันตรายจากการใช้ NOLOGGING นั้น ถ้าในขณะนั้นฐานข้อมูลของคุณเกิดเหตุการณ์ไม่คาดคิดขึ้น แล้วคุณจำเป็นต้องกู้คืนข้อมูลผ่าน Archive log หรือแม้กระทั่ง Redo log ณ ตารางนั้นๆ จะไม่สามารถกู้ข้อมูลกลับมาได้ เพราะฉะนั้นจงใช้มันอย่างระมัดระวังมากที่สุดนะครับ

Continue Reading

Optimizer Hints อาวุธหนักในการ Tuning SQL


วันนี้เรามาทำความรู้จักกับ Optimizer hints กันครับ… เคยมั๊ยครับที่บางวันคิวรี่ก็ทำงานได้อย่างรวดเร็ว แต่บางวันก็ช้าเป็นเต่า? เคยมั๊ยครับที่เวลาคุณอัพเกรดระบบฐานข้อมูลจากเวอร์ชั่นเก่าเป็นเวอร์ชั่นใหม่แล้ว ทำไมคิวรี่มันถึงช้าลง? คุณเคยประสบปัญหาเหล่านี้หรือไม่ครับ? วันนี้ผมมีทางออกสำหรับปัญหาเหล่านี้ครับ นั่นก็คือพระเอกของเราวันนี้ “Optimizer Hints”

Continue Reading