Создание неограниченного SqlServer Trace - PullRequest
1 голос
/ 20 ноября 2008

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


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

Ответы [ 2 ]

1 голос
/ 20 ноября 2008

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

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 - это идентификатор трассы, которую вы хотите остановить.

См. сообщение .

0 голосов
/ 20 ноября 2008

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...