время последнего выполнения процедуры

Guest275
Дата: 03.02.2009 14:02:11
Можно ли как то узнать когда последний раз выполнялась заданная процедура в MS SQL
Гавриленко Сергей Алексеевич
Дата: 03.02.2009 14:03:25
Если вы ничего заранее не предприняли, чтобы это узнать, то никак.
DeColo®es
Дата: 03.02.2009 15:52:58
Можно посмотреть примерно так:
select 
	last_execution_time,
	so.name
from master.sys.dm_exec_query_stats  qs
cross apply sys.dm_exec_sql_text(sql_handle) st
inner join dbo.sysobjects so on so.id = st.objectid
and so.name ='MeyProcedureName'
если ее план закэширован - будет последнее время выполнения.
Если выполнения с момента запуска не было или план вытеснен из кэша - не увидите ничего.
любитель запросов
Дата: 03.02.2009 16:01:07
DeColo®es
Можно посмотреть примерно так:
select 
	last_execution_time,
	so.name
from master.sys.dm_exec_query_stats  qs
cross apply sys.dm_exec_sql_text(sql_handle) st
inner join dbo.sysobjects so on so.id = st.objectid
and so.name ='MeyProcedureName'
если ее план закэширован - будет последнее время выполнения.
Если выполнения с момента запуска не было или план вытеснен из кэша - не увидите ничего.

Это если есть попадание в кэш. А вот если план генерится заново, то однозначного ответа не получится.
Guest275
Дата: 03.02.2009 17:14:20
Спасибо, но, к сожалению имелся в виду SQL 2000
DeColo®es
Дата: 03.02.2009 18:03:32
любитель запросов
Это если есть попадание в кэш. А вот если план генерится заново, то однозначного ответа не получится.
Для последнего выполнения как раз - получится. :)
Guest275
Дата: 03.02.2009 19:15:05
DeColo®es
любитель запросов
Это если есть попадание в кэш. А вот если план генерится заново, то однозначного ответа не получится.
Для последнего выполнения как раз - получится. :)


Так в нем же dm_* нет
DeColo®es
Дата: 03.02.2009 19:29:49
Guest275
DeColo®es
любитель запросов
Это если есть попадание в кэш. А вот если план генерится заново, то однозначного ответа не получится.
Для последнего выполнения как раз - получится. :)


Так в нем же dm_* нет
Ну так и ответ не про 2000 ;)

Давайте подойдем к проблеме по-другому... Для решения какой задачи нужно знать время последнего выполнения процедуры?
Guest275
Дата: 03.02.2009 19:49:11
Давайте подойдем к проблеме по-другому... Для решения какой задачи нужно знать время последнего выполнения процедуры?[/quot]

Нужно знать выполнялась ли процедура хоть раз в течение последних нескольких месяцев
alexeyvg
Дата: 03.02.2009 19:56:43
Guest275
Нужно знать выполнялась ли процедура хоть раз в течение последних нескольких месяцев
Нерешаемо.

Для выявления лишних процедур встройте в процедуры средства логирования вызовов или запустите профайлер.

А ещё лучьше анализируйте код.

Вообще, можно за пару дней написать утилитку, которая с большой вероятностью выявит неиспользуемые процедуры, и потом в них можно добавить первой строкой код raiserror