У нас есть сервер SQL 2000, который имеет различные задания, которые выполняются в разное время дня или даже в разные дни месяца. Обычно мы используем профилировщик SQL только для выполнения трассировок в течение очень коротких периодов времени для устранения неполадок производительности, но в этом случае это действительно не даст мне хорошее общее представление о видах запросов, которые выполняются к базе данных над курс дня, недели или месяца.
Как можно минимизировать издержки производительности при длительной трассировке SQL? Я уже знаю:
- Выполнить трассировку на стороне сервера (sp_ create_trace) вместо использования пользовательского интерфейса SQL Profiler.
- Трассировка в файл, а не в таблицу базы данных (что добавило бы дополнительную нагрузку на сервер БД).
Мой вопрос действительно о фильтрах. Если я добавлю фильтр только для того, чтобы регистрировать запросы, которые выполняются более определенной продолжительности или выполняет чтение, он все равно должен проверить всю активность на сервере, чтобы решить, нужно ли регистрировать его, верно? Таким образом, даже с этим фильтром трассировка будет создавать неприемлемый уровень издержек для сервера, который уже находится на грани неприемлемой производительности?