ข้อคำนึง เพื่อ Performance ของ Database

1. ทุกตางรางต้องมี Primary Key และ Primary Key ควรจะเป็น Clustered Index
2. การมี Non-Clustered Index มากเกินไป จะทำให้ Insert, Update, Delete ช้าลง
3. สร้าง Index ให้ Foreign Key และถ้า Foreign Key เป็น Unique ก็ให้กำหนดในคำสั่งสร้าง Index ด้วย
4. อย่าเพิ่งสร้าง Index อื่นๆ
5. การเรียก object ใดๆ ให้ขึ้นต้นด้วย Database Owner ก่อน แล้วตามด้วยชื่อ object นั้น เช่น dbo.tblEmployee ไม่ควรเรียก tblEmployee เฉยๆ
6. ใน Stored Procedure ให้ Set NoCount On ที่บนสุด และ Set NoCount Off ล่างสุด
7. ถ้าไม่ใช่ระบบที่สำคัญมากๆ เช่น ระบบการเงินของธนาคาร ให้พยายามหลีกเลี่ยงการ Locking โดยใช้การอ่านแบบ Dirty Read ดังนี้
Set Transaction Isolation Level Read UnCommited ในตอนเริ่ม และ
Read Commited ในตอนสิ้นสุด
8. การ Query ควรจะ Return เฉพาะข้อมูลที่ต้องการใช้จริงๆ เท่านั้น เช่น เฉพาะ Row หรือ เฉพาะ Column ที่ต้องการ
9. การใช้ Transaction เป็นสิ่งที่ดี แต่จะทำให้คนอื่นเข้าใช้งานไม่ได้ ดังนั้นพยายามใช้ในขอบเขตเล็กๆ หรือใช้เฉพาะใน Stored Procedure
10. หลีกเลี่ยงการใช้ Temp Table เท่าที่จะทำได้ แต่ถ้าจำเป็นต้องใช้ ให้ใช้คำสั่ง Create Table #temp
11. หลีกเลี่ยงการใช้ NOT IN ให้ใช้ Left Outer Join แทน
12. หลีกเลี่ยงการ Query ไปที่ Database Server บ่อยๆ โดยพยายามรวมการ Query แล้วส่งไปครั้งเดียว

No comments yet

Leave a reply