Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Aleksey br Member Откуда: Сообщений: 73 |
Есть ли простой способ проверить статус выполнения хранимой процедуры. К примеру в мониторе активности заданий в SSAS по статусу сразу видно, что задание, к примеру, выполняется. Вот в статье описано как по внутреннему тексту хранимой процедуры ее отловить. Может, среди Вас есть те, кто упростил данную задачку? К сообщению приложен файл. Размер - 126Kb |
10 ноя 17, 12:17 [20943054] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Aleksey br, я ловлю одним из вариантов: хотя есть масса готовых вариантов по поиску SELECT CASE transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncommitted' WHEN 2 THEN 'ReadCommitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS ILevel , r.session_id , requested_memory_MB = x.requested_memory_kb/1000. , granted_memory_MB = x.granted_memory_kb/1000. , x.query_cost , r.start_time , RunTime = DATEDIFF(s,r.start_time,getdate())/60. , TotalElapsedTime_min = r.total_elapsed_time/1000./60. , r.[status] , r.command , r.percent_complete , DatabaseName = DB_Name(r.database_id) , r.wait_type , r.last_wait_type , r.wait_resource , r.cpu_time , r.reads , r.writes , r.logical_reads , t.[text] AS [executing batch] , SUBSTRING( t.[text], r.statement_start_offset / 2, ( CASE WHEN r.statement_end_offset = -1 THEN DATALENGTH (t.[text]) ELSE r.statement_end_offset END - r.statement_start_offset ) / 2 ) AS [executing statement] , p.query_plan FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) AS p LEFT JOIN sys.dm_exec_query_memory_grants x ON x.session_id = r.session_id WHERE r.session_id != @@spid ORDER BY r.total_elapsed_time DESC; |
10 ноя 17, 12:20 [20943072] Ответить | Цитировать Сообщить модератору |
Aleksey br Member Откуда: Сообщений: 73 |
|
||
10 ноя 17, 12:20 [20943075] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
все выполняющееся в данный момент вы видите в sys.dm_exec_requests. к нему cross apply-ится sys.dm_exec_sql_text(sql_handle) и можете фильтровать по тексту. сам сервер еще не озверел логировать исход каждой запускаемой процедуры, но если вам оно надо, в каждой процедуре реализуйте ее логирование. |
10 ноя 17, 12:23 [20943092] Ответить | Цитировать Сообщить модератору |
iii2 Member Откуда: Сообщений: 202 |
http://sqlcom.ru/scripts/who-is-active/ |
10 ноя 17, 23:22 [20945136] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |