เมื่อเราพัฒนา SQL เราจะพบว่าบางครั้งการดำเนินการของ asp นั้นช้า เราสามารถใช้วิธีการต่อไปนี้เพื่อปรับปรุงประสิทธิภาพการดำเนินการ
[b]วิธีที่ 1: ลองใช้ SQL ที่ซับซ้อนแทน SQL แบบง่าย ๆ จำนวนมาก[/b]
สำหรับธุรกรรมเดียวกัน SQL ที่ซับซ้อนสามารถดำเนินการได้อย่างมีประสิทธิภาพมากกว่า SQL ทั่วไปจำนวนมาก เมื่อมีหลายเคียวรี คุณจะต้องใช้ JOIN ได้ดี
oRs=oConn.Execute(เลือก * จากหนังสือ)
ในขณะที่ไม่ใช่ ors.Eof
strSQL = เลือก * จากผู้เขียน โดยที่ AuthorID=&oRs(AuthorID) หรือs2=oConn.Execute(strSQL)
Response.write หรือ (ชื่อเรื่อง)&>>&oRs2 (ชื่อ)&<br>
หรือ.MoveNext()
เวน
ช้ากว่ารหัสต่อไปนี้:
strSQL=เลือก Books.Title,Authors.Name จากหนังสือ เข้าร่วมผู้เขียนบน Authors.AuthorID=Books.AuthorID
ors=oConn.ดำเนินการ(strSQL)
ในขณะที่ไม่ใช่ ors.Eof
Response.write หรือ (ชื่อเรื่อง)&>>&oRs (ชื่อ)&<br>
หรือ.MoveNext()
เวน
[b]วิธีที่ 2: พยายามหลีกเลี่ยงการใช้ชุดระเบียนที่อัปเดตได้[/b]
oRs=oConn.Execute(เลือก * จากผู้เขียน โดยที่ AuthorID=17,3,3)
หรือ(ชื่อ)=DarkMan
หรือs.ปรับปรุง()
ช้ากว่ารหัสต่อไปนี้:
strSQL = อัปเดตชื่อผู้เขียน SET = 'DarkMan' โดยที่ AuthorID = 17
oConn.ดำเนินการ strSQL
[b]วิธีที่ 3: เมื่อทำการอัพเดตฐานข้อมูล ให้ลองใช้การอัพเดตแบบแบตช์[/b]
จัดรูปแบบ SQL ทั้งหมดเป็น SQL ชุดใหญ่ชุดเดียวและรันพร้อมกัน ซึ่งมีประสิทธิภาพมากกว่าการอัปเดตข้อมูลทีละรายการมาก สิ่งนี้จะตอบสนองความต้องการในการประมวลผลธุรกรรมของคุณได้ดียิ่งขึ้น:
strSQL=
strSQL=strSQL&SET XACT_ABORT ON/n;
strSQL=strSQL&เริ่มธุรกรรม/n;
strSQL=strSQL&แทรกลงในคำสั่งซื้อ(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())/n;
strSQL=strSQL&แทรกลงใน orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)/n;
strSQL=strSQL&แทรกลงใน orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','02','G4726',1)/n;
strSQL=strSQL&คอมมิตธุรกรรม/n;
strSQL=strSQL&SET XACT_ABORT ปิด/n;
oConn.Execute(strSQL);
คำสั่ง SET XACT_ABORT OFF จะบอก SQL Server ว่าหากพบข้อผิดพลาดในระหว่างการประมวลผลธุรกรรมต่อไปนี้ ธุรกรรมที่เสร็จสมบูรณ์จะถูกยกเลิก
[b]วิธีที่ 4 ดัชนีฐานข้อมูล[/b]
สำหรับฟิลด์เหล่านั้นที่จะปรากฏในส่วนคำสั่ง Where คุณควรพิจารณาการจัดทำดัชนีก่อน ดังนั้น ควรพิจารณาฟิลด์เหล่านั้นที่ต้องเรียงลำดับด้วย
วิธีสร้างดัชนีใน MS Access: เลือกตารางที่ต้องการจัดทำดัชนีใน Access คลิก Design จากนั้นตั้งค่าดัชนีของฟิลด์ที่เกี่ยวข้อง
วิธีสร้างดัชนีใน MS SQL Server: ใน SQL Server Manager เลือกตารางที่เกี่ยวข้อง จากนั้นออกแบบตาราง คลิกขวา เลือก Properties และเลือกดัชนี/คีย์
[b]วิธีที่ 5: หลีกเลี่ยงการทำให้ช่องข้อความใหญ่เกินไป[/b]
เมื่อขนาดค่าของสตริงไม่ได้รับการแก้ไข การใช้ varchar จะดีกว่าการใช้ถ่าน ฉันเคยเห็นโปรแกรมตัวอย่างที่ฟิลด์ถูกกำหนดเป็น TEXT (255) แต่ค่าของฟิลด์มักจะเป็นเพียง 20 อักขระเท่านั้น ตารางข้อมูลนี้มีบันทึก 50,000 รายการ ทำให้ฐานข้อมูลนี้มีขนาดใหญ่มากและฐานข้อมูลขนาดใหญ่มักจะทำงานช้าลง