تقدم هذه المقالة بشكل أساسي مشاركة وظيفة تجمع اتصال قاعدة البيانات التي تنفذها Asp. يمكن لهذه الوظيفة تسريع سرعة الوصول إلى صفحات الويب وتقليل الضغط على قاعدة البيانات التي يمكن للأصدقاء الذين يحتاجون إليها الرجوع إليها.
تعد اتصالات قواعد البيانات موردًا بالغ الأهمية ومحدودًا ومكلفًا، خاصة في تطبيقات الويب متعددة المستخدمين. يمكن أن تؤثر إدارة اتصالات قاعدة البيانات بشكل كبير على قابلية التوسع ومتانة التطبيق بأكمله وتؤثر على مؤشرات أداء البرنامج. تم اقتراح تجمع اتصال قاعدة البيانات لمعالجة هذه المشكلة. تجمع اتصال قاعدة البيانات مسؤول عن تخصيص وإدارة وتحرير اتصالات قاعدة البيانات، فهو يسمح للتطبيقات بإعادة استخدام اتصال قاعدة البيانات الحالي بدلاً من إعادة إنشاء اتصالات قاعدة البيانات التي يتجاوز وقت خمولها الحد الأقصى لوقت الخمول لتجنب الأخطاء الناجمة عن الفشل في التحرير اتصال قاعدة البيانات بسبب فقدان اتصال قاعدة البيانات. يمكن لهذه التقنية تحسين أداء عمليات قاعدة البيانات بشكل كبير.
ومع ذلك، يتم استخدام هذه التقنية بشكل عام في Java و php و .net ونادرا ما يتم استخدامها لأن بعض مواقع الويب الخاصة بالشركات لا تحتاج إلى مثل هذه التكنولوجيا على الإطلاق.
لا يعني ذلك أنه لا يمكن استخدامه، ما يلي هو إصدار asp الذي تم البحث عنه، والذي يمكنه تسريع سرعة الوصول إلى صفحات الويب وتقليل الضغط على قاعدة البيانات.
1. ملف اتصال قاعدة البيانات DbPool.asp
< %Const PoolSize = 10Const Connstr = Driver={SQL Server};Server=(local);UID=sa;word=555;Database=db وظيفة GetRandString(lenth)Dim rndstr,iRandomizerndstr = i = 1do بينما i <= lenthrndstr = rndstr & Chr(cint(((120 - 98 + 1) * Rnd )+ 97))i = i + 1loopGetRandString = rndstrEnd وظيفة الوظيفة CreateDbConn()Dim DbConn,ConnKeySet DbConn = Server.CreateObject(ADODB.Connection)DbConn. افتح ConnstrConnKey = GetRandString(10)DbPool.Add ConnKey,DbConnEnd وظيفة الوظيفة GetDbConn()Dim CurKey,KeysIf DbPool.Count > 0 ثمKeys = 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.Remove CurKeyCall CreateDbConn() 'إنشاء اتصال جديد وإضافته إلى التجمع Set GetDbConn = GetDbConn()Else 'خلاف ذلك، قم بإزالته قم بتسجيل الخروج من التجمع، ثم قم بإرجاع الكائن المنسوخ إلى DbPool.Remove CurKeySet GetDbConn = ConnExit FunctionEnd IfElseResponse.Write تم استخدام تجمع الاتصال، يرجى إعادة تهيئة التطبيق Response.EndEnd ifEnd Function Function FreeDbConn(DbConn)DbPool. أضف وظيفة GetRandString(10) وDbConnEnd2. الملف العالمي global.asa
<معرف الكائن=DbPool Progid=Scripting.Dictionary Scope=Application runat=server></object><!--#include file=DbPool.asp-->< %Sub Application_OnStartDim ConnKeyFor i = 1 إلى PoolSize 'إنشاء الرقم المحدد اتصال قاعدة البياناتCreateDbConn()NextEnd Sub Application_OnEndDbPool.RemoveAllEnd Sub%>
3. ملف الاختبار test.asp
<!--#include file=DbPool.asp-->< %Response.Write بداية الاختبار:<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,1Do while Not rs.eofResponse.write Rs(v_oid) & <br />Rs.movenextloop FreeDbConn(dbconn)Response.اكتب اتصالًا واحدًا مجانيًا بالتجمع <br />Response.اكتب الكائنات الحالية العد : & DbPool.Count & <br /> %>