ما معنى "exec sp_reset_connection" يعني في Sql Server منشئ ملفات التعريف?[مكررة]
سؤال
هذا السؤال سبق الجواب هنا:
- ماذا sp_reset_connection تفعل ؟ 2 إجابات
في محاولة لفهم ما منشئ ملفات التعريف Sql يعني عن طريق انبعاث "sp_reset_connection".
لدي ما يلي: "exec sp_reset_connection" خط تليها BatchStarting وأكمل ،
RPC:Completed exec sp_reset_connection
SQL:BatchStarting SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
SQL:BatchCompleted SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
أساسا هل الخط الأول "exec sp_reset_connection" يعني العملية كلها (الاتصال افتتح تحديد stmt تشغيل ثم يتم إغلاق الاتصال وإعادتها إلى بركة) فقط ؟ أو الاتصال لا يزال في مرحلة.
و لماذا sp_reset_connection أعدم قبل بلدي select, لا ينبغي إعادة تعيين تأتي بعد المستخدم sql ؟
أنا أحاول أن أعرف هل هناك طريقة لمعرفة المزيد من التفاصيل عند الاتصال فتحت مغلقة ؟
من خلال رؤية "exec sp_reset_connection", هل هذا يعني أن الاتصال هو مغلق ؟
المحلول
مثل إجابات أخرى قال ، sp_reset_connection
يشير إلى أن تجمع الاتصال يتم إعادة استخدامها.يكون على بينة من نتيجة!
جيمي ميس' بلوق MSDN قال:
sp_reset_connection لا إعادة تعيين مستوى عزل المعاملة إلى الخادم الافتراضي من السابق الاتصال الإعداد.
التحديث:بدءا من SQL 2014, العميل السائقين مع TDS النسخة 7.3 أو أعلى مستويات عزل المعاملة سيتم إعادة تعيين إلى الافتراضي.
ref: SQL Server:مستوى عزل تسرب عبر الاتصالات المجمعة
هنا بعض المعلومات الإضافية:
ماذا sp_reset_connection تفعل ؟
الوصول إلى البيانات API طبقات مثل ODBC ، OLE-DB النظام.البيانات.SqlClient جميع استدعاء (الداخلية) الإجراء المخزن sp_reset_connection عند إعادة استخدام اتصال من تجمع الاتصال.ذلك هل هذا إلى إعادة تعيين حالة اتصال قبل أن يحصل على إعادة استخدامها ، ومع ذلك العدم هو توثيق ما الأشياء تحصل على إعادة تعيين.يحاول هذا المقال أن الوثيقة أجزاء الصدد أن تحصل على إعادة تعيين.
sp_reset_connection إعادة تعيين الجوانب التالية اتصال:
كل خطأ الدول والأرقام (مثل @@خطأ)
توقف جميع الأوروبية (تنفيذ السياقات) التي هي المواضيع الطفل من أحد الوالدين EC تنفيذ استعلام متوازي
ينتظر أي المتميز I/O العمليات المعلقة
يحرر أي عقد مخازن على الخادم عن طريق الاتصال
يفتح أي العازلة الموارد التي يتم استخدامها من قبل الاتصال
بتحرير كافة الذاكرة المخصصة المملوكة من قبل الاتصال
مسح أي عمل أو مؤقتة الجداول التي تم إنشاؤها من قبل اتصال
يقتل جميع المؤشرات العالمية المملوكة من قبل اتصال
يغلق أي فتح SQL-XML مقابض مفتوحة
حذف أي فتح SQL-XML العمل ذات الصلة الجداول
يغلق جميع جداول النظام
إغلاق كافة الجداول المستخدم
يسقط كل الكائنات المؤقتة
إحباط فتح الصفقات
العيوب من المعاملات الموزعة عندما جند
Decrements مرجع للمستخدمين في قاعدة البيانات الحالية التي إصدارات مشتركة تأمين قاعدة البيانات
يحرر المكتسبة أقفال
النشرات أي المكتسبة مقابض
يعيد تعيين كافة الخيارات إلى القيم الافتراضية
يعيد @@rowcount القيمة
يعيد @@الهوية القيمة
إعادة تعيين أي دورة على مستوى التتبع الخيارات باستخدام dbcc traceon()
يعيد إلى CONTEXT_INFO
NULL
في SQL Server 2005 والإصدارات الأحدث [ ليس جزء من المقال الأصلي ]sp_reset_connection لن إعادة تعيين:
سياق الأمان الذي هو السبب تجمع الاتصال مباريات اتصالات على أساس الدقيقة سلسلة الاتصال
تطبيق الأدوار دخلت باستخدام sp_setapprole منذ تطبيق أدوار لا يمكن أن يكون عادت
ملاحظة:أنا بما في ذلك قائمة هنا كما كنت لا تريد أن تضيع في أي وقت مضى عابرة على شبكة الإنترنت.
نصائح أخرى
إنها إشارة إلى أنه يتم استخدام تجمع الاتصالات (وهو أمر جيد).
لاحظ مع ذلك:
إذا قمت بإصدار SET TRANSACTION Isolation LEVEL في إجراء مخزن أو مشغل، فعندما يعود الكائن للتحكم، تتم إعادة تعيين مستوى العزل إلى المستوى الساري عند استدعاء الكائن.على سبيل المثال، إذا قمت بتعيين القراءة القابلة للتكرار في دفعة، ثم قامت الدفعة باستدعاء إجراء مخزن يقوم بتعيين مستوى العزل إلى قابل للتسلسل، يعود إعداد مستوى العزل إلى القراءة القابلة للتكرار عندما يقوم الإجراء المخزن بإرجاع التحكم إلى الدفعة.