2008-11-20 3 views
1

В моем приложении я создаю трассировку в реальном времени (не уверен, как еще, но я!) И функцию sp_trace_create в SQlServer, я знаю, что по умолчанию значение @maxfilesize равно 5, но в моем приложении его остановить, когда пользователь хочет остановить его ... любые идеи, как это можно сделать?Создание неограниченного SqlServer Trace


Потому что я не хочу сохранять файлы ... im не уверен, как работает опрокидывание? Прямо сейчас я помещаю его в цикл таймера, который запрашивает базу данных со всеми указанными событиями на ней с максимальным размером файла 1 (обычно это занимает не более примерно 2 секунд), сливается со старой суммой данных в моем dgview и удаляет исходный файл. это продолжается до тех пор, пока пользователь не сообщит ему, чтобы остановить, что остановит таймер от запроса к базе данных. Не прочный метод, но я думаю, что это начало! Все, что мне нужно сейчас, это выяснить типы данных столбцов, как если я установил свои значения в фильтрах, которые им нужно включить в качестве соответствующего типа данных в столбец ... у кого есть какая-то подсказка, где я могу получить список типов данных ? MSDN есть список, но нет типов ...

ответ

1

Для запуска трассировки с файлом опрокидыванием, вместо того чтобы останавливаться в максимальном размере, начать трассировку, как так:

exec @rc = sp_trace_create @TraceID output, 2, N'InsertFileNameHere', @maxfilesize, NULL 

где @maxfilesize будет определять размер до того, как будет создан новый файл опрокидывания.

ВНИМАНИЕ: будьте очень осторожны при выполнении неограниченной трассировки. Если вы заполняете производственный диск, это ваша голова не моя!

Вы можете остановить запущенный след, как так:

EXEC sp_trace_setstatus @ID, 0 

EXEC sp_trace_setstatus @ID, 2 

где @ID это идентификатор следа вы хотите остановить.

См. Это post.

+0

Да, я использовал это раньше, но как я могу создать тот, который не останавливается на maxmimumfilesize? Я хочу, чтобы он просто работал, пока не остановился вручную, независимо от максимального размера файла ... – xoxo 2008-11-20 12:22:42

0

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

[@maxfilesize =] MAX_FILE_SIZE Определяет максимальный размер в мегабайтах (МБ) файл трассировки может расти. max_file_size имеет значение bigint со значением по умолчанию 5.

Если этот параметр указан без опции TRACE_FILE_ROLLOVER, трассировка прекращает запись в файл, когда используемое дисковое пространство превышает количество, указанное max_file_size.

Я не понимаю, почему вы не можете просто перебирать файлы и загружать их в таблицу или в свое приложение. Не должно быть так сложно.

Смежные вопросы