Database Performance Tuning คือ การปรับแต่งระบบฐานข้อมูลเพื่อให้มีประสิทธิภาพทำงานสูงที่สุด เท่าที่สามารถเป็นไปได้ การ Tuning Database นั้น
สามารถทำได้หลายส่วน ส่วนหลักๆ ประกอบด้วย
1. การทำ Indexing
2. การสร้าง Schema ที่เหมาะสมกับงาน
3. Coding หรือ SQL Tuning
4. การปรับแต่ง Server Parameters
ในบทความนี้ เราจะอธิบายถึง Coding หรือ SQL Tuning ซึ่งเป็นส่วนที่ Programmer หรือนักพัฒนาเกี่ยวข้องมากที่สุด
เป็นตัวอย่าง 3 กรณี
1. Isolating Indexed Fields
Task : จงดึงข้อมูลสั่งซื้อที่ประกอบด้วย Order ID, date of order, Customer ID ทั้งหมด 7 วันที่ผ่านมา
Objective : เขียน SQL ยังไงให้มีประสิทธิภาพและเร็วที่สุด
Solve : หลีกเลี่ยงการใช้ build in function (TODAYS, CURRENT_DATE()) กับ Indexed Fields และ หลีกเลี่ยงการใช้งาน build in function
โดยการให้ application ส่งค่าที่ต้องการในรูปแบบค่าคงที่ภายใน SQL แทน
2. Correlated Subquery Conversion
Task : จงดึงข้อมูลชื่อผลิตภัณฑ์ และราคาขายที่สูงที่สุดจากรายการสั่งซื้อ
Objective : เขียน SQL ยังไงให้มีประสิทธิภาพและเร็วที่สุด
Solve : หลีกเลี่ยงจากใช้งาน Sub query ในส่วนของ Select โดยใช้วิธีการ JOIN แทน
เพราะการใช้ Sub query ในส่วน Select จะทำให้ต้องมีการประมวลผล Sub query บนทุก ๆ records
3. Derived Table
Task : จงดึงข้อมูลลูกค้าและรายการสั่งซื้อล่าสุด
Objective : เขียน SQL ยังไงให้มีประสิทธิภาพและเร็วที่สุด
Solve : หลีกเลี่ยงจากใช้งาน Sub query ในส่วนของ Where โดยใช้วิธีการ JOIN แทน
เพราะการใช้ Sub query ในส่วน Where จะทำให้ต้องมีการประมวลผล Sub query บนทุก ๆ records