چند روز قبل مشكلي رخ داده بود به اين شرح!
سروري كهSQL server بر روي آن نصب بود بخاطر SQL server ، بيش از 50 درصد CPU usage مداوم پيدا كرده بود. عموما مصرف CPU اس كيوال سرور روي سرورهاي قوي بالا نيست و تداوم اين حالت به اين شدت يعني بروز مشكل.
اينجا است كه اين سؤال پيش مياد، SQL Server الان داره چكار ميكنه كه تا اين حد به صورت مداوم مصرف CPU آن بالا رفته؟ (حدودا 2 ساعت تمام به صورت مداوم مصرف CPU بالاي 50 درصد بود)
با استفاده از كوئري زير ميشود، عبارات SQL ايي را كه هم اكنون در حال اجرا هستند را به صورت زنده مشاهده كرد: (در اس كيوال سرور 2005 به بعد)
USE master;
SELECT st.text, r.session_id, r.status, r.command, r.cpu_time, r.total_elapsed_time
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS st
همچنين با استفاده از كوئري زير ميتوان آخرين 50 كوئري اجرا شده در SQL server را به همراه زمان اجراي آنها گزارشگيري كرد:
SELECT TOP 50
deqs.last_execution_time AS [Time],
dest.text AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS apply
sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY
deqs.last_execution_time DESC
http://www.sqlteam.com/article/dynamic-management-views