Это было обсуждено в следующей ошибке человечности.
Насколько я вижу, что у Вас есть следующие опции:
Конечно, опция 2 является лучшей в долгосрочной перспективе, поскольку она решает проблему для всех, и опции 1 и 3 решают ее только для Вас, однако 1 и 3 более быстры.
Проверьте встроенный (но недокументированный я думаю?) хранимые процедуры sp_MSset_current_activity
и sp_MSget_current_activity
. Они должны получить Вас вся информация, которую Вы ищете - просто не совсем настолько же симпатичный как монитор действия.
Использование в качестве примера:
declare @id int
exec dbo.sp_MSset_current_activity @id output
exec dbo.sp_MSget_current_activity @id, @option = 1
exec dbo.sp_MSget_current_activity @id, @option = 2
exec dbo.sp_MSget_current_activity @id, @option = 3
exec dbo.sp_MSget_current_activity @id, @option = 4, @spid = 51 -- locks per spid
exec dbo.sp_MSget_current_activity @id, @option = 5, @obj = N'sysobjects'
Получить процедура имеет комментарии в ней, которые обрисовывают в общих чертах различные доступные варианты.