[ย้ายบทความจาก Gushared.com]
วันนี้ผมจะมาพูดถึง Stored Procedures ซึ่งผมก็พึ่งได้ความรู้นี้มาสดๆร้อนๆ เป็นอะไรที่ไม่ยากแต่มีประโยชน์มากสำหรับผู้ที่มีปัญหาเรื่อง SQL Injection หรือปัญหาที่เว็บเซิฟเวอร์ทำงานหนักเกิน การทำ Procedures สามารถเข้ามาช่วยเราได้ครับ
Stored Procedures ก็คือการเขียน SQL ฝังไว้ที่ดาต้าเบสเพื่อให้ช่วยแบ่งเบาภาระของเว็บเซิฟเวอร์ ซึ่งสามารถทำได้ทั้ง SQL Server และ Oracle ประโยชน์หลักๆที่เราจะได้รับ เช่น เมื่อผู้ใช้งานเว็บไซต์เราทำอะไรขึ้นมาสักอย่างแล้วเกิดงานส่งไปที่เว็บเซิฟเวอร์ 10 งาน แต่ใน 10 งานนี้เป็นงานที่ดาต้าเบสสามารถทำได้ซะ 4 งาน เราก็จะให้ฝั่งดาต้าเบสมาช่วยทำ เท่ากับว่าเราสามารถแบ่งเบางานของฝั่งเว็บเซิฟเวอร์ได้ 4 งาน
ข้อดี
1.ป้องกันการทำ SQL Injection
2.ลด Traffic ในระบบเน็ตเวิร์ค
3.แบ่งเบาภาระของ Web Server
4.สามารถแยกกัน Develop ได้ระหว่าง Business Logic กับ Database Logic
ข้อเสีย
1.ผูกติดกับดาต้าเบสนั้นๆ ถ้าเกิดใช้กับ SQL Server แล้วอยู่ดีๆจะมาใช้กับ Oracle จะต้องเขียน Procedures ใหม่
2.ต้องเรียนรู้ภาษา SQL แบบเฉพาะของ DBMS นั้นๆ เช่น T/SQL สำหรับ SQL Server หรือ PL/SQL สำหรับ Oracle
3. การ Debug store procedure ทำได้ยาก
4. Store procedure ทำให้ database server มี load การใช้งาน memory และ processor สูง แทนที่จะสนใจเกี่ยวกับการจัดเก็บและเรียกใช้ข้อมูล