บทความนี้จะแนะนำการแบ่งปันฟังก์ชันพูลการเชื่อมต่อฐานข้อมูลที่ Asp นำมาใช้เป็นหลัก ฟังก์ชันนี้สามารถเร่งความเร็วในการเข้าถึงหน้าเว็บและลดความกดดันในฐานข้อมูลได้
การเชื่อมต่อฐานข้อมูลเป็นทรัพยากรที่สำคัญ มีจำกัด และมีราคาแพง โดยเฉพาะในเว็บแอปพลิเคชันที่มีผู้ใช้หลายราย การจัดการการเชื่อมต่อฐานข้อมูลสามารถส่งผลกระทบอย่างมากต่อความสามารถในการปรับขนาดและความทนทานของแอปพลิเคชันทั้งหมด และส่งผลต่อตัวบ่งชี้ประสิทธิภาพของโปรแกรม พูลการเชื่อมต่อฐานข้อมูลถูกเสนอเพื่อแก้ไขปัญหานี้ พูลการเชื่อมต่อฐานข้อมูลมีหน้าที่ในการจัดสรร จัดการ และปล่อยการเชื่อมต่อฐานข้อมูล อนุญาตให้แอปพลิเคชันใช้การเชื่อมต่อฐานข้อมูลที่มีอยู่ซ้ำ แทนที่จะสร้างการเชื่อมต่อฐานข้อมูลใหม่ซึ่งมีเวลาว่างเกินเวลาที่ไม่ได้ใช้งานสูงสุดเพื่อหลีกเลี่ยงข้อผิดพลาดเนื่องจากความล้มเหลวในการเปิดตัว การเชื่อมต่อฐานข้อมูลเกิดจากการขาดการเชื่อมต่อฐานข้อมูล เทคโนโลยีนี้สามารถปรับปรุงประสิทธิภาพการทำงานของฐานข้อมูลได้อย่างมาก
อย่างไรก็ตาม เทคโนโลยีนี้โดยทั่วไปจะใช้ใน java, php และ .net ASP เนื่องจากเว็บไซต์ของบริษัทบางแห่งไม่จำเป็นต้องใช้เทคโนโลยีดังกล่าวเลย
ไม่ใช่ว่าไม่สามารถใช้งานได้ ต่อไปนี้เป็นเวอร์ชัน asp ที่ได้รับการค้นคว้าซึ่งสามารถเร่งความเร็วในการเข้าถึงหน้าเว็บและลดแรงกดดันต่อฐานข้อมูลได้
1. ไฟล์การเชื่อมต่อฐานข้อมูล DbPool.asp
< %Const PoolSize = 10Const Connstr = Driver={SQL Server};Server=(local);UID=sa;word=555;Database=db Function GetRandString(lenth)Dim rndstr,iRandomizerndstr = i = 1do ในขณะที่ i <= lenthrndstr = rndstr & Chr(cint(((120 - 98 + 1) * Rnd )+ 97))i = i + 1loopGetRandString = rndstrEnd Function Function CreateDbConn()Dim DbConn,ConnKeySet DbConn = Server.CreateObject(ADODB.Connection)DbConn เปิด ConnstrConnKey = GetRandString(10)DbPool.Add ConnKey,DbConnEnd Function Function GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 ThenKeys = DbPool.Keys ' รับชื่อคีย์ CurKey = Keys(0)Response.Write Cur DbConn Key Is: & CurKey & <br />Set Conn = Server.CreateObject(ADODB.Connection)Set Conn = DbPool(CurKey)If Conn.State = adStateClosed จากนั้น 'ถ้าการเชื่อมต่อนี้ ถูกปิดแล้ว ให้ออกจากพูล สร้างการเชื่อมต่อใหม่ที่มีอยู่ และเพิ่มลงในพูล DbPool ลบ CurKeyCall CreateDbConn() 'สร้างการเชื่อมต่อใหม่และเพิ่มลงในพูล Set GetDbConn = GetDbConn()Else 'มิฉะนั้น ลบออก ออกจากพูล จากนั้นส่งคืนออบเจ็กต์ที่คัดลอกไปที่ DbPool ลบ CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write พูลการเชื่อมต่อถูกใช้หมด โปรดเตรียมใช้งานแอปพลิเคชัน Response.EndEnd ifEnd Function Function FreeDbConn(DbConn)DbPool ใหม่ เพิ่ม GetRandString(10) ,ฟังก์ชัน DbConnEnd
2. ไฟล์โกลบอล global.asa
< object ID=DbPool Progid=Scripting.Dictionary Scope=Application runat=server></object><!--#include file=DbPool.asp-->< %Sub Application_OnStartDim ConnKeyFor i = 1 To PoolSize 'สร้างหมายเลขที่ระบุ ของการเชื่อมต่อฐานข้อมูลCreateDbConn()NextEnd Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. ไฟล์ทดสอบ test.asp
<!--#include file=DbPool.asp-->< %Response.Write Test Start:<br>Response.Write จำนวนอ็อบเจ็กต์ปัจจุบัน : & DbPool.Count & <br /> Set dbconn = Server.CreateObject(ADODB. Connection)Set dbconn = GetDbConn()Response.Write รับหนึ่งการเชื่อมต่อจากพูล <br />Response.Write จำนวนอ็อบเจ็กต์ปัจจุบัน : & DbPool.Count & <br /> Set Rs = Server.CreateObject(ADODB.Recordset)Rs.open เลือก * จาก mkdb, dbconn, 1,1 ทำในขณะที่ไม่ใช่ rs.eofResponse.write Rs (v_oid) & <br /> Rs.movenextloop FreeDbConn (dbconn) Response. เขียนฟรีหนึ่งการเชื่อมต่อไปยังพูล <br /> Response. เขียนวัตถุปัจจุบัน นับ : & DbPool.Count & <br /> %>