Настройка SQL Server Profiler

TolSh
Дата: 03.01.2001 05:55:13
Здравствуйте Все.
Может кто-нибудь знает как настроить фильтр SQL Server Profiler (MSSQL7.0) , чтобы показывать только те SQL-команды которые завершаются ошибкой.
Дед Маздай
Дата: 06.01.2001 23:04:55
Смотря какой ошибкой. Если синтаксис, name resolving и прочее, что отлавливается на этапах парсинга, нормализации и компиляции, - то никак. Они не доходят до движка, а след-но - и до Profiler'а. Ошибки run-time, т.е. те, к-е устанавливают @@ERROR, отлавливать, очевидно, в св-вах профайлера, закладка filters, объект error, критерий not equal to, поставить знач. 0.
Fompro
Дата: 07.01.2001 13:39:17
Если я правильно понимаю, то никак. Дело в том, что процессы отправки пакета, обработки Result Set и ошибок разделены. Если Вы (или в нашем случае ODS) обрабатывают результаты выполнения запроса, то сообщения и сообщения об ошибках вызывают соответствующие обработчики событий, устанавливаемые
DBMSGHANDLE_PROC dbmsghandle (DBMSGHANDLE_PROC handler ); и
DBERRHANDLE_PROC dberrhandle ( DBERRHANDLE_PROC handler ); , вызываемыми асинхронно (За счёт этого в Query Analyzer сообщения выделены в отдельную закладку). Т.о. этот процесс асинхронный и как его согласовывать (тем более в Profiler'е) ??? ...
Дед Маздай
Дата: 08.01.2001 14:58:24
Категоричность предыдущего высказывания напоминает мне Гидрометцентр, упорно передающий прогноз вместо того, чтобы выглянуть в окно. Откроем в профайлере стандартную болванку фильтра, добавим в список отлавливаемых событий Errors and Warnings \ Exception, а в список выводимых полей (Data Columns) - Error. Стартуем trace. Сделаем запрос select 1/0. В профайлере появится:
Exception 8134 Error: 8134, Severity: 16, State: 1 SQL Query Analyzer Administrator ...
Что и требовалось доказать.

PS. Суждения, приводимые в предущем сообщении, вероятно, относятся к версии 6.5 и ранее, где SQL Trace лежал позади ODS.
Fompro
Дата: 10.01.2001 09:33:47
"Категоричность предыдущего высказывания напоминает мне Гидрометцентр, упорно передающий прогноз вместо того, чтобы выглянуть в окно."
А кто говорил, что нельзя увидеть сообщение об ошибке ???
По-моему речь шла о том, "чтобы показывать только те SQL-команды которые завершаются ошибкой."
Теперь, для того, чтобы узнать, что при выполнении пакета (batch) произошла ошибка, придётся ждать "Женский взгляд с ..."
P.S. Да, sqltrace.dll зачем-то импортирует функции OPENDS60.DLL
Дед Маздай
Дата: 10.01.2001 12:23:13
Да ну что вы как дети, честное слово. Оператор, вызвавший ошибку, стоит в следующей строке трассы. Сохраняем трассу в таблицу, после чего делаем select * from mytrace where rownumber in (select rownumber+1 from mytrace where error is not null)
TolSh
Дата: 11.01.2001 05:18:15
Спасибо Дед Маздай и Fompro за информацию , только не нахожу я в своем профайлере в закладке Data Columns поля Errors. Может быть данное поле появлятся только в Profiler от MSSQL 2000 ?
Дед Маздай
Дата: 11.01.2001 19:21:10
Нет, вот я явно запускаю sqltrace.exe из 7-рочного каталога, вот это поле Error (между EndTime и EventSubClass). У меня, правда, еще 2000-й стоит рядом, может, он добавил. Sorry, я сейчас болею и не могу проверить на чистом 7.0.