2013-11-23 2 views
2

Я использую объекты управления C#, SQL Server 2008 и SQL, и мне нужно знать, есть ли способ получить текущую исполняемую хранимую процедуру (ы) с помощью SMO/C#. У меня есть несколько длительных хранимых процедур, и мне нужно следить за их текущим статусом, определяя, являются ли они простоя или выполняются. Можно ли это сделать с помощью SMO? Если да, то как?Как я могу указать текущие запущенные хранимые процедуры с SMO?

ответ

1

Возможно, вы можете вернуться к нему с помощью метода EnumProccesses объекта Server. Я действительно чувствую, что это случай «когда у вас молоток, все выглядит как гвоздь». То есть вы сможете сделать намного лучше с необработанным T-SQL против системных представлений, таких как sys.dm_exec_requests

0

Я согласен с Бен Тулом, следующий оператор SQL от here должен выполнить эту работу (хотя я не знаю, t):

SELECT requests.session_id, 
    requests.status, 
    requests.command, 
    requests.statement_start_offset, 
    requests.statement_end_offset, 
    requests.total_elapsed_time, 
    details.text 
FROM sys.dm_exec_requests requests 
CROSS APPLY sys.dm_exec_sql_text (requests.plan_handle) details 
WHERE requests.session_id > 50 
ORDER BY total_elapsed_time DESC 
Смежные вопросы