معلومات الإحصائيات التي تمت معالجتها في SQL Server 2005
-
29-09-2019 - |
سؤال
في Oracle ، هناك طريقة عرض تسمى V $ SQLAREA يسرد الإحصائيات على منطقة SQL المشتركة وتحتوي على صف واحد لكل سلسلة SQL. يوفر إحصائيات حول عبارات SQL الموجودة في الذاكرة ، محلية ، وجاهزة للتنفيذ.
هناك عمود واحد -Rows_procort الذي يلخص العدد الإجمالي للصفوف التي تمت معالجتها نيابة عن بيان SQL هذا.
أبحث عن معلومات جانبية في SQLServer 2005.
نظرت في بعض من DMV (مثل sys.dm_exec_query_stats) ، لكنني لم أجد أي شيء مرتبط.
لن يكون RowCount مفيدًا بالنسبة لي ، حيث أريد معلومات الإحصائيات الإضافية التي ستلخص الصفوف من أعلىل وحدة المعالجة المركزية/IO/التنفيذ في قاعدة البيانات.
سأكون أقدر أي مساعدة فيما يتعلق بالموضوع.
شكرا مقدما،
روني.
رأيت ذلك عندما أستفسر عن الاستعلام التالي ، أتلقى خطة الاستعلام في XML.
داخل رمز خطة XML ، هناك جزء "تقديرات" مع رقم يرتبط بعدد صفوف تقدير الاستعلام.
أفكر في خيار التقاط عمود QUERY_PLAN لإعادة تأجير المعلومات أعلاه فقط (إلا إذا كنت سأجده في بعض طرق عرض/جداول النظام).
أين يمكنني العثور على العدد الفعلي لصفوف الاستعلام؟ أين يتم تخزينه؟
SELECT
case when sql_handle IS NULL
then ' '
else ( substring(st.text,(statement_start_offset+2)/2,
(case when qs.statement_end_offset = -1
then len(convert(nvarchar(MAX),st.text))*2
else statement_end_offset
end - statement_start_offset) /2 ) )
end as query_text ,
query_plan,
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)
cross apply sys.dm_exec_sql_text(sql_handle) st;
المحلول
لا يوجد معادل مباشر خاصة بالنسبة لـ Rowcounts على حد علمي. تكلفة DMVS ذات الصلة IO التي يتم استخدامها لإظهار الاستعلامات المفهرسة المفقودة ، وأغلى الاستفسارات وما إلى ذلك
هذا سوف يمنحك احصائيات لكل بيان SQL للجلسات الحالية. YMMV: لقد وضعته معًا استنادًا إلى البرامج النصية التي كنت أكذب حولها.
SELECT
*
FROM
sys.dm_exec_query_stats QS
CROSS APPLY
sys.dm_exec_sql_text(sql_handle) ST
تستند البرامج النصية الخاصة بي على الروابط المذكورة هنا
نصائح أخرى
يمكنك استخدام متغير النظام rowCount لمعرفة عدد السجلات المتأثرة بالبيان الأخير.