ADODB.Connection عبر شبكة LAN بطيئة للغاية> تحتاج إلى مزيد من السرعة

أستخدم كائن ADODB.Connection مع "موفر = Microsoft.Jet.OLEDB.4.0 ؛ مصدر البيانات = test.mdb ؛ Jet OLEDB: قاعدة بيانات كلمة المرور = الاختبار ؛ Persist Security Info = False؛".

تختلف سرعة db_obj.Open (db_conn_string) بشكل كبير.

  • محلي: 0.05 ثانية
  • عبر شبكة LAN: 1 - 1.5 ثانية

بعد ذلك أستخدم عبارة محددة.

أنا testet كل سطر في كل شيك. بطئتي الوحيدة هي القيادة المفتوحة.

أي أفكار حول كيفية زيادة السرعة عبر الشبكة؟

شكر

0

1 إجابة

فقط من الفضول ، لماذا أنت قلق جدا حول الفرق بين مجرد ثوان في سرعة الاتصال؟

هل المشكلة هي أنك تقوم بإنشاء هذه الاتصالات وإفلاتها باستمرار خلال التعليمات البرمجية ، وبالتالي فإن الثانية الزائدة أو ما يصل إلى عدة دقائق؟

إذا كان الأمر كذلك ، فقد يحتاج هدفك إلى تحسين استخدام الاتصال نفسه. بدلاً من إسقاط الاتصال باستمرار ، ربما احتفظ به نشطًا.

أيضا ، في ملاحظة جانبية ، قد تحتاج إلى إعادة التفكير في حفظ كلمة المرور في سلسلة الاتصال (على افتراض أن هذا ليس مجرد استخدام شخصي أو أيا كان).

بغض النظر عن هذه الأشياء ، فإن طريقة الاتصال الخاصة بك تكون جيدة بقدر ما تحصل عليها من منظور لقطة واحدة.

هناك بعض الخيارات الأخرى ، مثل فتح الاتصال كمجموعة سجلات ، لكن السرعة لن ترى أي زيادة ملحوظة في جانب الفتح.

Dim rs1 As New ADODB.Recordset
Dim sConn As String
Dim sSQL As String

FilePath = "[File Location]"
sConn = "Provider=Microsoft.jet.oledb.4.0;Data source=" & _
     FilePath & "\[DatabaseName].[Extension]"

conn.Open sConn
Set conn = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
sSQL = "SELECT * FROM Table1"
rs1.CursorLocation = adUseClient
rs1.Open sSQL, conn, adOpenDynamic, adLockPessimistic 'lock depending on user requirements

rs1.MoveFirst
Do While rs1.EOF = False
    'Code here
    rs1.MoveNext
Loop

'For additional manipulation
rs1.MoveFirst
Do While rs1.EOF = False
    'Code here
    rs1.MoveNext
Loop

rs1.Close
Set rs1 = Nothing
Set conn = Nothing

على حد علمي ، بخلاف ذلك ، سيكون الحل الحقيقي الوحيد هو زيادة سرعة الشبكة المادية نفسها (إذا كانت معقولة).

0
وأضاف
أنا أستخدمه لإدارة الحق ، بحيث يتم حظر المستخدمين حتى يتم الاختيار. إذا لم يكن هناك شيء أسرع من فتح الاتصال بهذه الطريقة ، فأنت على حق ، فهذا يعتمد فقط على سرعة LAN.
وأضاف المؤلف Taurus, مصدر