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

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
Периодически ловлю в error log ошибку вроде
Ошибка: 7102, серьезность: 20, состояние: 99. Internal Error: Text manager cannot continue with current statement. Run DBCC CHECKTABLE.


Как в профайлере точно выявить какая инструкция генерит эту ошибку?

На сервер ежесекундно под одним и тем же юзером отсылается несколько десятков динамических запросов, в которых черт ногу сломит

Если ловить их профайлером без фильтрации, то непосредственно до и после ексепшена успешные RPC:Completed с Error = '0 - OK'

P.S DBCC CHECKTABLE запускал, говорит что всё ОК

SELECT @@VERSION
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)
4 июн 14, 14:33    [16119277]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Гадя Петрович
Периодически ловлю в error log ошибку вроде
Ошибка: 7102, серьезность: 20, состояние: 99. Internal Error: Text manager cannot continue with current statement. Run DBCC CHECKTABLE.


Как в профайлере точно выявить какая инструкция генерит эту ошибку?

На сервер ежесекундно под одним и тем же юзером отсылается несколько десятков динамических запросов, в которых черт ногу сломит

Если ловить их профайлером без фильтрации, то непосредственно до и после ексепшена успешные RPC:Completed с Error = '0 - OK'

P.S DBCC CHECKTABLE запускал, говорит что всё ОК

SELECT @@VERSION
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64) Sep 21 2011 22:45:45 Copyright (c) 1988-2008 Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (VM)


Нужно взять номер сессии (процесса) и по нему смотреть запросы последовательно. Для тщательного анализа загоните трассу в базу.
4 июн 14, 15:14    [16119801]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
a_voronin
Нужно взять номер сессии (процесса) и по нему смотреть запросы последовательно. Для тщательного анализа загоните трассу в базу.
именно так я и сделал
SPID ничего не гарантирует, поскольку там много потоков и пул коннектов
4 июн 14, 15:21    [16119888]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Хорошо, тогда очевидного ответа нет. Я много просидел за профайлером вылавливая причины подобных глюков. Возможно причина в другой транзакции, другой сессии. Надо искать, надо проявлять интуицию.

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

Можно выгрузить трассу в базу и запросами поискать, с чем совпадает подобная ошибка.

Возможно не продумана стратегия использования уровней изоляции.
4 июн 14, 17:37    [16121237]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
это печально :(
4 июн 14, 17:39    [16121251]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Гадя Петрович
Периодически ловлю в error log ошибку вроде
Ошибка: 7102, серьезность: 20, состояние: 99. Internal Error: Text manager cannot continue with current statement. Run DBCC CHECKTABLE.

Как в профайлере точно выявить какая инструкция генерит эту ошибку?
Добавить в профайлере события ошибок, тогда последовательность будет понятна.
5 июн 14, 00:21    [16123245]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
Гадя Петрович
Member

Откуда: планета Плюк, 215 в тентуре, галактика Кин-дза-дза в Спирали
Сообщений: 52912
alexeyvg
Гадя Петрович
Периодически ловлю в error log ошибку вроде
Ошибка: 7102, серьезность: 20, состояние: 99. Internal Error: Text manager cannot continue with current statement. Run DBCC CHECKTABLE.


Как в профайлере точно выявить какая инструкция генерит эту ошибку?
Добавить в профайлере события ошибок, тогда последовательность будет понятна.
ну это очевидно :)
я думал, есть какой-то однозначный способ привязать эксепшен к инструкции
например, по Event Sequence
5 июн 14, 11:01    [16124399]     Ответить | Цитировать Сообщить модератору
 Re: profiler  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Гадя Петрович
я думал, есть какой-то однозначный способ привязать эксепшен к инструкции
например, по Event Sequence
По Event Sequence + SPID
5 июн 14, 11:29    [16124610]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить