Oracle DBA & All IT » Tuning Performance » เทคนิคการเลือก Index อย่างไรให้ work
เทคนิคการเลือก Index อย่างไรให้ work
หลายครั้งมักจะมีคำถามว่าใช้ index แล้วทำไมถึงยังช้า ไหนว่าใช้ index แล้วจะช่วยให้การดึงข้อมูลเร็วขึ้น เราได้ฟังก็อ้าว… ทฤษฎีว่าอย่างนั้นนะ แต่เอ๊ะ ขอดูหน่อยซิว่า index ที่ว่าเป็นยังไง
พอเราดูก้ถึงถึงบ้างอ้อเลย..พระเจ้า Table มีข้อมูลเป็นล้าน Column ที่เลือกใช้สร้าง index เป็นค่าที่มีใน Table 2 ค่า T,F เราก็โอ้ว .. รู้แระ ทำไม ไม่ได้สิ ไม่ถูกต้องหลักการเลือก Index ต้องเอา Column ที่มีค่า distinct (ค่าที่ไม่ซ้ำกัน) เยอะๆๆ สิถึงจะถูก ถ้าจำเป็นต้อง where ด้วย column ที่มีค่าไม่ซ้ำแค่ 2 ค่า หรือน้อยมากๆ ก็แนะนำเลยค่ะ ว่าอ่าน Full table ไปเลยดีกว่าเร็วกว่าแน่นอน โดยสามารถนำสูตรด้านล่างไปลองคำนวณและเลือก Index ที่ดีกันมาใช้ดีกว่า
การเลือก index มีสูตรตามนี้ DISTINCT_KEYS / NUM_ROWS
โดย column ที่เราเลือกควรจะเป็นค่าที่ไม่ซ้ำและไม่เป็นค่า NULL
ตัวอย่างในการเลือก index ที่ดี
ถ้า Table ของเรามีข้อมูล 100,000 record และใน column ที่เราต้องการจะนำมาทำ index มี จำนวน 88,000 record ที่มีค่าไม่ซ้ำกัน
หลังจากนั้นเราเอามาเข้าสูตร 88,000 / 100,000 = 0.88
โดยถ้าผลลัพธ์เข้าใกล้ 1 เท่าไรก็เข้าข่ายที่เป็น index ที่ดีได้
ตัวอย่างในการเลือก index ที่ไม่ดี
ถ้า Table ของเรามีข้อมูล 100,000 record และใน column ที่เราต้องการจะนำมาทำ index มี จำนวน 500 record ที่มีค่าไม่ซ้ำกัน
หลังจากนั้นเราเอามาเข้าสูตร 500 / 100,000 = 0.005
โดยถ้าผลลัพธ์ออกมาแบบนี้ เราอ่านแบบ full table จะมีประสิทธิภาพมากกว่าการใช้ index เพราะข้อมูลที่เราต้องการนั้นเป็นส่วนมากใน Table
Guideline สำหรับการเลือกหลาย column ทำรวมเป็น 1 Index (Composite index)
ให้พิจารณาสร้าง composite index บน column ที่มีการเรียกใช้บ่อยๆ ในการใช้ join table ใน SQL statement
แต่อย่าลืมว่า index มีผลช่วยเพิ่ม performance ของการ select, update, delete แต่จะทำให้การ insert ช้าลงด้วยเพราะทุกครั้งที่ insert จะต้องคอย sort ทุกครั้งยิ่งมีเยอะๆ เพราะฉะนั้นขอให้เลือก index เฉพาะที่ต้องใช้งานจริงๆ เพื่อที่จะได้ไม่ต้องเปลืองเนื้อที่โดยใช่เหตุด้วย
หวังว่าบทความนี้จะช่วยให้ความกระจ่างในการเลือก index ไม่บ้างก็น้อยนะคะ ลองนำไปใช้กันดู ถ้าดีไม่ดียังไงก็รบกวนกลับมาแนะนำกันบ้างนะคะ แลกเปลี่ยนความรู้กัน ^^
.. Preview : 17418Related Search:
- การใช้ index oracle
- การสร้าง index oracle
- การสร้าง index อย่างมีประสิทธิภาพ
- หลักการ การ Create Index oracle
Filed under: Tuning Performance
-
siamnobita
-
Shirley
-
Rumor
-
-
Azia
-
Snow