1. ลองใช้การประมวลผลธุรกรรมเพื่ออัพเดตฐานข้อมูล
การประมวลผลธุรกรรม VB มีคำแนะนำการดำเนินงานฐานข้อมูลหลายรายการโดยเริ่มจาก BeginTrans และลงท้ายด้วย CommitTrans หรือ Rollback นอกเหนือจากการรับประกันความสมบูรณ์ของฐานข้อมูลแล้ว การประมวลผลธุรกรรมยังสามารถปรับปรุงประสิทธิภาพของการอัพเดตชุดฐานข้อมูลได้อย่างมาก เนื่องจากถ้าการดำเนินการปรับปรุงฐานข้อมูลไม่ได้ใช้การประมวลผลธุรกรรม การดำเนินการปรับปรุงแต่ละครั้งจะทำให้ฐานข้อมูลถูกเขียนลงดิสก์เพียงครั้งเดียว หลังจากใช้การประมวลผลธุรกรรม การอัพเดตจะดำเนินการในบัฟเฟอร์หน่วยความจำเท่านั้น และการแก้ไขทั้งหมดจะถูกเขียนกลับไปยังดิสก์พร้อมกันเมื่อดำเนินการ CommitTrans มีประเด็นที่ควรทราบเมื่อใช้การประมวลผลธุรกรรม:
(1) การประมวลผลธุรกรรมจะต้องมีกลไกการตรวจสอบข้อผิดพลาดที่สมบูรณ์
(2) เนื่องจาก VB ใช้การล็อกหน้าในฐานข้อมูลก่อนที่ธุรกรรมจะสิ้นสุด ในสภาพแวดล้อมที่มีผู้ใช้หลายราย หากธุรกรรมถูกระงับ ผู้ใช้รายอื่นจะไม่สามารถเข้าถึงข้อมูลที่ล็อกได้
2. ลองใช้การแบ่งแยกรหัสสำหรับการดำเนินการดึงข้อมูลแบบ Select
การใช้ Select สำหรับการดำเนินการฐานข้อมูลนั้นง่ายและสะดวก แต่หากการดำเนินการดึงข้อมูลบางอย่างถูกแยกย่อยเป็นรหัสการดึงข้อมูลด้วยตนเองที่เทียบเท่ากัน ความเร็วในการดึงข้อมูลของฐานข้อมูลจะถูกเร่งอย่างมาก วิธีการพื้นฐานในการแบ่งแยกส่วนคือการจัดทำดัชนีฟิลด์คีย์การดึงข้อมูลและการใช้งาน Seek After ตำแหน่งของเมธอด ขึ้นอยู่กับลักษณะการเรียงลำดับของฐานข้อมูลที่จัดทำดัชนี การค้นหาการแวะผ่านแถว เมื่อช่วงการแวะผ่านไม่กว้างมาก วิธีนี้สามารถปรับปรุงความเร็วในการเข้าถึงฐานข้อมูลได้หลายสิบครั้ง ตัวอย่างเช่น Select*frompersonwherevol='123'andbirth=#11-02-73# จะถูกแยกย่อยเป็นการดำเนินการต่อไปนี้ ความเร็วในการเข้าถึงสามารถปรับปรุงได้อย่างมาก:
Table.Index=volTable.Seek=, 123ifnottable.nomatchแล้ว
ในขณะที่nottable.eof
iftable(ฉบับ)=123แล้ว
ตาราง.movast
elseifable(เกิด)=#11-02-73#แล้ว
'ค้นหาบันทึก
สิ้นสุด
ตาราง.movenenext
เวนเดนดิฟ
3. ใช้การแนบเพื่อผูกตารางฐานข้อมูล
เมื่อใช้ ODBC เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล เช่น MSSQLServer, Oracle และ Sysbase เราสามารถผูกตารางบนเซิร์ฟเวอร์กับฐานข้อมูล MSAcess ผ่านฟังก์ชันแนบของ MSAcess ได้ เนื่องจากฐานข้อมูล MSAcess สามารถแคชโครงสร้างของตารางบนเซิร์ฟเวอร์ฐานข้อมูลได้ เมื่อเราเข้าถึงแหล่งข้อมูล ODBC สามารถปรับปรุงประสิทธิภาพการเข้าถึงของระบบได้
4. ใช้ตัวเลือก dbSQLPassThrough
เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล MSSQLServer, Oracle และ Sysbase ให้ใช้ตัวเลือก dbSQLPassThrough เพื่อส่งคำสั่งไปยังเซิร์ฟเวอร์ฐานข้อมูลโดยตรง ซึ่งจะช่วยลดการตรวจสอบและการตีความคำสั่งของมิดเดิลแวร์ และปรับปรุงประสิทธิภาพการเข้าถึงฐานข้อมูล ตัวอย่างต่อไปนี้ใช้ขั้นตอนการจัดเก็บเพื่อสร้าง Dynaset:
dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'เปิดฐานข้อมูล setmyds=mydb.openrecordset(name, dbOpendynaset, dbSQLPassThrough,...)
ข้อเสียของการใช้ dbSQLPassThrough คือชุดระเบียนที่ส่งคืนเป็นแบบอ่านอย่างเดียว
5. ใช้ตารางวัตถุการเข้าถึงฐานข้อมูลอย่างถูกต้อง
รองรับคำสั่งและดัชนี SEEK การรวมกันของทั้งสองสามารถค้นหาบันทึกได้เร็วที่สุด ผู้เขียนเคยทำการทดสอบเปรียบเทียบความเร็ว และใช้เวลา 3.5 วินาทีสำหรับ Table เพื่อดึงข้อมูล 100,000 รายการ, 9 วินาทีสำหรับ Dynaset และ 10 วินาทีสำหรับ Snapshot การดำเนินการอ่านและเขียน ไม่รองรับ SORT และ FILTER และต้องใช้ดัชนีแทน ซึ่งสอดคล้องกับตารางฟิสิคัลในฐานข้อมูล การเพิ่ม การลบ และการแก้ไขจะส่งผลโดยตรงต่อตารางฐานข้อมูล
Dynaset วัตถุฐานข้อมูลที่ยืดหยุ่นที่สุด รองรับการดำเนินการอ่านและเขียนและเป็นชุดย่อยแบบไดนามิก ใน ODBC การดำเนินการเขียนจำเป็นต้องมีการตั้งค่าดัชนีที่ไม่ซ้ำกัน ใช้ได้เฉพาะ Dynaset เท่านั้น
Snapshot สามารถอ่านได้แต่เขียนไม่ได้ ไม่สามารถล็อคได้ ไม่รองรับการประมวลผลธุรกรรม
-