Optimize คำสั่ง SQL เขียนเมื่อ 2009.06.30 โดย

การ Optimize คำสั่งใน SQL จะช่วยให้การทำงานของ Application สามารถทำงานได้เร็วขึ้น และยังสามารถช่วยลดความคับคั่งใน Network ลงได้ด้วย

พยายามระบุข้อลักษณะข้อมูลที่ต้องการจริงๆด้วย WHERE clause
การระบุลักษณะข้อมูลจะช่วยเพิ่มประสิทธิภาพของ Application ได้อย่างมาก เนื่องจาก DBMS จะคืนค่ามาเฉพาะเท่าที่เราระบุ ไม่ใช่การคืนค่าทุกระเบียนในตาราง และยังช่วยในการลดความคับคั่งภายใน Network ได้อีกด้วย

พยายามระบุจำนวนระเบียนที่ต้องการ
การระบุจำนวนระเบียนที่ต้องการด้วยคำสั่ง (TOP/LIMIT) เพื่อเรียกดูตามจำนวนที่ต้องการ จะช่วยเพิ่มความเร็วของ Application และลดความคับคั่งของข้อมูลใน Network ลงได้

พยายามระบุ column ที่ต้องการ
การระบุ Column จะช่วยเพิ่มประสิทธิภาพของ Application และทำการลดความคับคั่งใน Network ลงได้เนื่องจาก DBMS จะคืนค่ามาเฉพาะ Column ที่เราต้องการเท่านั้น ไม่ใช่ Column ทั้งหมดที่มีในตาราง

ใช้ View และ Stored Procedure แทนการใช้หลายคำสั่ง
จะช่วยลดความคับคั่งใน Network ลงเนื่องจาก Application จะส่งเพียงแค่ชื่อ View หรือ Stored Procedure นั้นๆเท่านั้น (รวมถึง parameter ต่างๆด้วย) และยังสามารถใช้ในการจัดการสิทธิในการเข้าถึงข้อมูลโดยตรงได้อีกด้วย โดยการให้ใช้งานผ่านทาง View และ Stored Procedure

ถ้าต้องการเพียงจำนวนระเบียนในตาราง สามารถใช้วิธีอื่นๆแทน SELECT COUNT(*) ได้ [MSSQL]
ใน MSSQL เราสามารถใช้วิธีอื่นในการหาจำนวนระเบียนทั้งหมดของตารางได้โดยการดึงข้อมูลจากตาราง SYSINDEX ที่เก็บข้อมูล index ของแต่ละตารางไว้ โดยใช้คำสั่ง
TSQL
  1. SELECT ROWS FROM sysindex WHERE id = OBJECT_ID('table_name') AND indid < 2

จะช่วยเพิ่มความเร็วในแต่ละครั้ง

พยายามเลิกใช้ HAVING clause เมื่อสามารถทำได้
การใช้ HAVING clause จะใช้ในการระบุรูปแบบข้อมูลที่ต้องการต้องใช้พร้อมกับคำสั่ง GROUP BY clause เมื่อมีการใช้งาน HAVING clause จะนำผลจากคำสั่ง GROUP BY clause มารวมเป็นชุดของข้อมูลและหาผลรวมทั้งหมด (เนื่องจาก GROUP BY จะใช้กับคำสั่งในกลุ่ม Aggregate Functions) จากนั้นจะเอา HAVING clause มาตัดส่วนที่ไม่ต้องการออก ในหลายๆกรณี เราสามารถใช้ WHERE clause และ GROUP BY clause โดยไม่ต้องใช้ HAVING clause แทนได้ จะช่วยเพิ่มประสิทธิภาพของ Application ได้




คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย