Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проверка запущена ли процедура через sys.sysprocesses
|
|||
|---|---|---|---|
|
#18+
Добрый день. Для моей задачи необходимо проверять запущена ли в данный момент процедура. Пытаюсь сделать это так: select 1 from sys.sysprocesses as qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st where object_name(st.objectid) = 'Моя_процедура' Когда тестировал данный способ все работало прекрасно. Те запускал тестовую процедуру и скрипт выдавал значение = 1. Но когда я запускаю боевую процедуру то вышеуказанный скрипт ее в упор не видит. В чем может быть проблема? Это же не может быть связано со сложностью самой процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 14:40 |
|
||
|
Проверка запущена ли процедура через sys.sysprocesses
|
|||
|---|---|---|---|
|
#18+
assmsk, что такое сложность процедуры? Если процедуры вызывает другую, то в процессах будет другая. А так подозреваю городите очередной sp_getapplock ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 14:49 |
|
||
|
Проверка запущена ли процедура через sys.sysprocesses
|
|||
|---|---|---|---|
|
#18+
Просто не могу концептуально понять почему когда делаешь это на условной тестовой процедуре: create procedure test as declare @i int while 1 < 2 begin set @i = 1 end То все прекрасно работает. А когда запускаешь уже свою процедуру с несложным но километровым кодом, то она не отображается в запущенных процессах но при этом работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 15:05 |
|
||
|
Проверка запущена ли процедура через sys.sysprocesses
|
|||
|---|---|---|---|
|
#18+
assmsk, если у вас в "километровом коде" вызываются другие модули, то ваш исходный модуль будет скрыт их вызовами. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. в другой сессии позапускайте и посмотрите как будет меняться выполняемый модуль Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 15:19 |
|
||
|
Проверка запущена ли процедура через sys.sysprocesses
|
|||
|---|---|---|---|
|
#18+
и еще кстати лучше использовать представление sys.dm_exec_requests вместо sys.sysprocesses если конечно версия не 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 15:24 |
|
||
|
Проверка запущена ли процедура через sys.sysprocesses
|
|||
|---|---|---|---|
|
#18+
assmskПросто не могу концептуально понять почему когда делаешь это на условной тестовой процедуре: create procedure test as declare @i int while 1 < 2 begin set @i = 1 end То все прекрасно работает. А когда запускаешь уже свою процедуру с несложным но километровым кодом, то она не отображается в запущенных процессах но при этом работает. кончептуально: очевидно в несложном но километровым авторcreate procedure test as declare @i int while 1 < 2 begin EXEC('несложный но километровый') end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2018, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39672105&tid=1689432]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
63ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 375ms |

| 0 / 0 |
