Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получить текст запроса подготовленного курсора  [new]
MMF
Member

Откуда:
Сообщений: 99
Подскажите, пожалуйста, возможно ли из запроса выполнения курсора, например,
declare @CursorHandle int
declare @p1 int
set @p1=1073741843
exec sp_cursorexecute @p1, @CursorHandle output
по хендлу 1073741843 получить текст его подготовки. Причем, нужно обойтись без сбора трасс или расширенных событий. dm_exec_cursors не помогает, поскольку речь об еще не открытом курсоре
22 фев 17, 16:45    [20237842]     Ответить | Цитировать Сообщить модератору
 Re: Получить текст запроса подготовленного курсора  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ну, весьма вероятно, что приложение, которое отправило sp_cursorexecute, в курсе запроса.

Сообщение было отредактировано: 22 фев 17, 23:50
22 фев 17, 23:50    [20239013]     Ответить | Цитировать Сообщить модератору
 Re: Получить текст запроса подготовленного курсора  [new]
MMF
Member

Откуда:
Сообщений: 99
Суть задачи в том, что трассируются длительные запросы, значительная часть которых как раз sp_cursorexecute. А подготовка курсора в трассу не попадает, хотя именно запрос подготовки курсора интересен. Можно его ловить расширенными событиями cursor_prepare и сопоставлять, но на старых версиях сервера MSSQL <= 2008 приходится использовать трассировку с фильтром на текст запроса, что приводит к лишней загрузке сервера.
23 фев 17, 18:20    [20240189]     Ответить | Цитировать Сообщить модератору
 Re: Получить текст запроса подготовленного курсора  [new]
MMF
Member

Откуда:
Сообщений: 99
Т. е. хочется из стороннего приложения узнать, а что же такое эдакое было в курсоре подготовлено, что потом выполнялось так долго.
23 фев 17, 18:23    [20240194]     Ответить | Цитировать Сообщить модератору
 Re: Получить текст запроса подготовленного курсора  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
MMF
Т. е. хочется из стороннего приложения узнать, а что же такое эдакое было в курсоре подготовлено, что потом выполнялось так долго.
По sys.dm_exec_query_stats ищите долгоиграющие запросы вместе с их планами и текстами.
23 фев 17, 19:23    [20240301]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить