บทนำ
ระบบฐานข้อมูลเป็นการเก็บรวบรวมสารสนเทศให้สามารถถูกเข้าถึง จัดการ และแก้ไข้ได้ง่าย เนื่ องจากการขยายตัว
อย่างรวมเร็วของอินเทอร์เน็ต ทาให้ปริมาณข้อมูลเพิ่มขึ้นอย่างรวดเร็ว ความซับซ้อนของข้อมูลและความต้องการการ
ตอบสนองที่รวดเร็วกลายเป็นปัญหาที่สาคัญในการเข้าถึงฐานข้อมูล เทคนิคหนึ่ งที่จะเพิ่มประสิทธิภาพการสอบถามข้อมูล
คือ การเพื่อปรับคาสั่งเอสคิวแอล
กำรจัดกำรกับปัญหำ
การสอบถามข้อมูล(Query) ที่ มีปริ มาณงานมาก มีความซับซ้อนและฐานข้อมูลมีขนาดใหญ่
(Surajit,2009)การเพิ่มประสิทธิภาพการสอบถามข้อมูลเป็นกระบวนการที่มีความสาคัญในการดาเนินการของฐานข้อมูล
เชิงสัมพันธ์ (Relational Database)
ปัจจุบันมีการขยายตัวอย่างรวดเร็วของอินเทอร์เน็ต ปริมาณข้อมูลมีการเพิ่มขึ้นในอัตราแบบเอ็กซ์โพเนเชียล ธุรกิจต่างๆ
จึงต้องสร้างฐานข้อมูลขนาดใหญ่เพื่อรับมือกับอัตราการเพิ่มขึ้นอันมหาศาลของข้อมูล (J Skarie et al., 2007)
สำเหตุของปัญหำ
โครงสร้ำงและขั้นตอนกำรทำงำนของส่วนประมวลผลกำร
สอบถำมข้อมูลเป็นดังรูปที่ 1
Scanner, Parser and Translator
Query Optimizer
Query Code Generator
Query Execution Engine
Metabase
database
ตัวอย่ำงกำรสอบถำมข้อมูล
1. ให้แสดงรำยละเอียดของนักเรียนที่ได้เกรด A ในภำคเรียนล่ำสุด (สำมำรถ
เขียนคำสั่ง SQL ได้ 3 วิธี)
1. A standard join:
SELECT * FROM Student, Registration
WHERE Student.Student_id= Registration.Student_id
AND
Registration.grade = ‘A’;
3. A correlated subquery:
SELECT * FROM Student
WHERE
0 <
(SELECT count(*)
FROM Registration
WHERE grade = ‘A’) AND
Student_id=Student. Student_id);
2. A nested query:
SELECT * FROM Student
WHERE
Student_id =
(SELECT Student_id
FROM Registration
WHERE grade = ‘A’);
กำรใช้แผนปฏิบัติกำร (EXECUTION PLAN)
แผนปฏิบัติการ คือ การแสดงรายละเอียดของขั้นตอนในการประมวลผลคาสั่ง SQL ว่าแต่ละขั้นตอนมีการแสดงรายละเอียดในการประมวลผล
มีอะไรบ้าง และมีจานวนแถวที่ประมวลผลไปเท่าไร โดยแสดงการทางานแบบต้นไม้ (Tree) (Maria Colgan, 2008)
กฎพื้นฐำนของ EXECUTION PLAN TREE
กฎพื้นฐำนของ Execution Plan Tree (Ramsundaram,2009)
มีดังนี้
1. Execution Plan Tree จะประกอบไปด้วยโหนดราก (Root Note)
2. โหนดพ่อแม่ (Parrent Node) สามารถมีโหนดลูก (Child Note) ได้1 โหนดหรือมากกว่าและโหนดพ่อแม่จะมีรหัส (ID)
น้อยกว่าโหนดลูก
3. โหนดลูกสามารถมีโหนดพ่อแม่ได้เพียงโหนดเดียวเท่านั้น โดยจะเขียนคาสั่งของโหนดลูกให้เยื้องไปทางขวา และในกรณีที่มีโหนดลูกหลายโหนด
โหนดลูกเหล่านี้ก็จะเขียนให้อยู่ในระดับเดียวกัน
ตัวอย่ำง Execution Plan
ต้องกำรสอบถำมข้อมูลนับจำนวนช่องทำงกำรขำยแยกในแต่ละรหัสของช่องทำงกำร
ขำย โดยไม่นับช่องทำงกำรขำยรหัสที่เท่ำกับ 3 (สำมำรถเขียนคำสั่ง SQL ได้ 2 วิธี)
1. ใช้ Having clasue
SELECT Channel_id, count(Channel_id)
FROM Mysales
GROUP BY Channel_id
HAVING Channel_id != 3;
ตัวอย่ำง Execution Plan
2. ใช้ Where clasue
SELECT Channel_id, count(Channel_id)
FROM Mysales
WHERE Channel_id != 3
GROUP BY Channel_id;
กำรเปรียบเทียบของ Having clasue และ Where clasue
Having clasue
Where clasue
สรุป
การสอบถามข้อมูลเป็นการสอบถามไปยังฐานข้อมูลเพื่อดึงข้อมูลที่ต้องการออกมาตามเงื่อนไขที่ต้องการ เมื่อมีปริมาณข้อมูลจานวนมาก
และมีความซับซ้อน จะใช้เวลาในการสอบถามข้อมูลเป็นเวลานาน การสอบถามข้อมูลได้เร็วขึ้น คือ การปรับแต่งคาสั่งเอสคิวแอล ซึ่งสามารถแสดง
รายละเอียดของขั้นตอนในการประมวลผลคาสั่ง SQL แสดงค่าสถิติที่สาคัญของการใช้ทรัพยากรของเครื่ องอีกด้วย จากการนาเสนอในครั้งนี้จะทาให้
เห็นถึงประโยชน์และวิธีการใช้งาน Execution Plan เพื่อให้การสอบถามข้อมูลได้รวดเร็วขึ้น

Execution plan for sql