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

Подскажите, плз, с методикой отладки, чтобы долго не копать в неправильную сторону.
Есть огромный скрипт, в котором происходят каскадные изменения в таблицах.
Меняю немного данные на входе, получаю, есстно, ошибочные данные на выходе. Начинаю раскручивать цепочку каскадов назад. Нахожу, что где-то в середине в одну из промежуточных таблиц заносятся неверные данные. Причём неявно, из какого-то медвежьего угла (в самом скрипте явных операторов вставки нет).

Как отследить эту вставку?
Есть механизм Query Notifications, но насколько он подходит для задачки? И как долго в нём разбираться (узнал про него тока сегодня утром)? М.б. как-то проще решить проблему?

ПС. Вешать триггер на табл. не хотелось бы...
12 ноя 09, 13:40    [7920225]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
Anddros
Member

Откуда:
Сообщений: 1077
Профайлером ловите
12 ноя 09, 13:44    [7920261]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
восточный чайник
Guest
И это всё?..
М-да...
Информативно :(
13 ноя 09, 08:21    [7923589]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
В профайлере можно настроить отлов именно того события, что вам нужно, что вам не нравиться?

Как альтернатива, то полного просветления разбирать “огромный скрипт”…

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
13 ноя 09, 08:25    [7923594]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
восточный чайник
Guest
DENIS_CHEL,

У меня профайлера нет в комплектации. Верно ли я понимаю, что всё можно настроить врукопашную через sp_trace_setevent и sp_trace_setfilter?
13 ноя 09, 10:05    [7923942]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Microsoft SQL Server Management Studio заходите в меню Сервис->Приложение SQL SERVER Profiler, точно нет?

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
13 ноя 09, 10:13    [7923998]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
восточный чайник
...Есть огромный скрипт, в котором происходят каскадные изменения в таблицах.
Меняю немного данные на входе, получаю, есстно, ошибочные данные на выходе. Начинаю раскручивать цепочку каскадов назад. Нахожу, что где-то в середине в одну из промежуточных таблиц заносятся неверные данные. Причём неявно, из какого-то медвежьего угла (в самом скрипте явных операторов вставки нет)...

ИМХО, т.к. у вас:
- скрипт работает НО результат не верный
- наличие каскада
- "в самом скрипте явных операторов вставки нет" - что скорее всего говорит о работе тригеров каскада

то профайлер не очень то вам и поможет. Правильнее будет "ковыряться руками" на тестовой базе "по шагам" с просмотром состояния таблиц.
13 ноя 09, 10:17    [7924017]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
DENIS_CHEL
Microsoft SQL Server Management Studio заходите в меню Сервис->Приложение SQL SERVER Profiler, точно нет?

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..

ну например в Express его нет :)
13 ноя 09, 10:22    [7924067]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Ммм… я про это все время забываю…

Разбирать скрипт и анализировать несомненно полезно, но и открыть для себя профайлер то же стоит…


---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
13 ноя 09, 10:25    [7924087]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3152
[quot ДедушкаИМХО, т.к. у вас:
- скрипт работает НО результат не верный
- наличие каскада
- "в самом скрипте явных операторов вставки нет" - что скорее всего говорит о работе тригеров каскада

то профайлер не очень то вам и поможет.[/quot]
А что, в профайлере нужные events уже настроить нельзя?
13 ноя 09, 10:30    [7924109]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
восточный чайник
Guest
DENIS_CHEL
Ммм… я про это все время забываю…

Разбирать скрипт и анализировать несомненно полезно, но и открыть для себя профайлер то же стоит…


Я бы с удовольствием открыл, но в моей лиценции нету е'го...
13 ноя 09, 13:55    [7925979]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
восточный чайник
Guest
Можно всё-таки ловить через sp_trace_setevent и sp_trace_setfilter?
Если да, то какие события и какие фильтры?
Мне нужно событие на вставку, но такого, кажись, нету...
13 ноя 09, 13:56    [7925991]     Ответить | Цитировать Сообщить модератору
 Re: "трассировка" кода в SQL-скриптах  [new]
Glory
Member

Откуда:
Сообщений: 104760
восточный чайник
Можно всё-таки ловить через sp_trace_setevent и sp_trace_setfilter?

Можно

восточный чайник

Если да, то какие события и какие фильтры?

Те, которые вам нужны и описаны в документации

восточный чайник

Мне нужно событие на вставку, но такого, кажись, нету...

"событие на вставку" называется INSERT <mytable>
13 ноя 09, 14:33    [7926348]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить