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


GATHER_PLAN_STATISTICS

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

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

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

Continue Reading

Advertisements

APPEND hint เคล็ด(ไม่)ลับสำหรับการ INSERT ข้อมูล


ไม่ได้เขียนบทความซะนานเลยครับ เนื่องจากช่วงหลังๆ มานี้งานค่อนข้างเยอะ วันนี้เลยเข้าเขียนบทความต่อจากคราวที่แล้วที่เราพูดถึงการใช้งาน NOLOGGING กันไป ซึ่งมันมีความเกี่ยวข้องกับ APPEND hint ที่ผมจะกล่าวถึงในวันนี้ครับ และจะมากล่าวคร่าวๆ กับวิธีการใช้งานด้วยครับ

APPEND hint มีผลต่อประสิทธิภาพอย่างไร?

โดยวิธีการทำงานของ APPEND hint นั้นมันจะทำการ insert ข้อมูลโดยตรงลงบน data files ซึ่งจะทำให้ประสิทธิภาพในการ INSERT … SELECT ดีขึ้นดังนี้

Continue Reading

Optimizer_mode ค่าไหน? ควรใช้เมื่อใด?


บนฐานข้อมูล Oracle นั้น มีพารามิเตอร์บางตัวที่เป็นดั่งกระสุนเงิน ที่สามารถสร้าง Impact กับประสิทธิภาพบนฐานข้อมูลได้ในระดับกว้าง หนึ่งในกระสุนเงินเพื่อกำราบพวกคิวรี่ผีดิบคือ Optimizer_mode ครับ

ผลกระทบของ Optimizer_mode ที่ทำให้ Execution plan เปลี่ยน!

Continue Reading

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


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

Continue Reading