كيف يمكنني معرفة عدد اتصالات SQL التي قمت بفتحها في خدمة Windows؟

StackOverflow https://stackoverflow.com/questions/96431

سؤال

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

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم .net، فهناك موفر بيانات .net لخادم SQL في PerfMon.يمكنك إلقاء نظرة على NumberOfPooledConnections هناك

نصائح أخرى

يعد الإجراء sp_who2 المخزن في الجدول الرئيسي أمرًا رائعًا من جانب قاعدة البيانات.وسوف تظهر لك اتصالات قاعدة البيانات.إذا كنت تبحث عن مزيد من البيانات، فحاول إنشاء ملفات تعريف أيضًا.

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

يمكنك استخدام أداة التعريف لتتبع جميع الاتصالات الموجودة وفتحها وإغلاقها

يمكنك فتح ملف التعريف من مدير المؤسسة

إذا كنت تستخدم SQL 2000، فيمكنك التحقق من SQL 2000 Enterprise Manager:

لعرض نافذة النشاط الحالي في إدارة المؤسسة SQL Server، قم بتوسيع مجموعة خوادم، ثم قم بتوسيع ملف ملقم.قم بتوسيع الإدارة، ثم قم بتوسيع النشاط الحالي.انقر فوق عملية معلومات.

نشاط الخادم الحالي هو يتم عرضها في جزء التفاصيل.

(http://technet.microsoft.com/en-us/library/cc738560.aspx)

(من بحث جوجل:SQL 2000 النشاط الحالي)

يمكنك تشغيل sp_who2 في SQL Server Management Studio أو Query Analyzer لرؤية جميع اتصالاتك الحالية.هذا هو خادم SQL.لست متأكدًا من نظام RDBMS الذي تستخدمه.

ابحث أيضًا في التعليمات البرمجية الخاصة بك وتأكد من إغلاق الاتصال بمجرد عدم الحاجة إليه بعد الآن.كن شرجيًا بشأن هذا!

استخدم عبارة "using" للتأكد من أن اتصالاتك مغلقة دائمًا ولن تواجه هذه المشكلة مرة أخرى أبدًا:

using(SqlConnection connection = new SqlConnection())
{
...
} // connection is always disposed (i.e. closed) here, even if an exception is thrown
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top