سؤال

سألني أحد مطوريي في منشأة تسجيل قائمة على الزناد في SQL Server 2008 إذا كان هناك أمر لاسترداد معظم قيادة SQL المنفذة مؤخرا داخل T-SQL. اعتقدت أنه كان هناك إجراء مخزن للنظام لمثل هذه الوظيفة فقط، لكن من الممكن أن أفكر في منتج آخر من عقد قبل ... أسفرت عمليات البحث عبر الإنترنت إلينا أي نتائج.

هل لدى أي شخص معلومات عن أي شيء من هذا النوع؟

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

المحلول

بالتأكيد محاولة هذا:

SELECT
DMExQryStats.last_execution_time AS [Executed At],
DMExSQLTxt.text AS [Query]
FROM
sys.dm_exec_query_stats AS DMExQryStats
CROSS APPLY
sys.dm_exec_sql_text(DMExQryStats.sql_handle) AS DMExSQLTxt
ORDER BY
DMExQryStats.last_execution_time DESC

سيعود الاستعلامات المنفذة مؤخرا إلى جانب التاريخ والوقت الذي تم تنفيذه

نصائح أخرى

حسنا، الإجراء الذي يسترد أكثر دفعة SQL الحالية يمكن أن يعيد نفسه بأمان :)

في ملاحظة جادة، يمكنك أن تنظر في sys.dm_exec_query_stats و sys.dm_exec_procedure_stats لمعرفة متى تم تنفيذ خطة آخر مرة، بناء على last_execution_time عمود. ولكن لاحظ أن الطريقة غير موثوق لأنه لا يمثل خطط تم إخلاءها من ذاكرة التخزين المؤقت بعد التنفيذ.

ماذا يعني "الأحدث" في سياق جهاز متعدد النواة؟

أيضا، هل يعني أنه بدأ مؤخرا، أو انتهت مؤخرا؟

أخيرا، يجب عليه فتح SSMS والنظر في مراقب النشاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top