SQL Server Profiler - Как отфильтровать трассировку, чтобы отображать события только из одной базы данных?
Как ограничить трассировку SQL Server Profiler конкретной базой данных? Я не вижу, как отфильтровать трассировку, чтобы не видеть события для всех баз данных в экземпляре, к которому я подключаюсь.
6 ответов
Под Свойства трассировки> вкладка Выбор событий> выберите показать все столбцы. Теперь под фильтрами столбцов вы должны увидеть имя базы данных. Введите имя базы данных для раздела "Мне нравится", и вы увидите следы только для этой базы данных.
В SQL 2005 сначала необходимо отобразить столбец "Имя базы данных" в вашей трассировке. Проще всего выбрать шаблон Tuning, в который уже добавлен этот столбец.
Предполагая, что у вас выбран шаблон Tuning, для фильтрации:
- Нажмите на вкладку "Выбор событий"
- Нажмите кнопку "Фильтры столбцов"
- Проверьте Показать все столбцы (правая сторона вниз)
- Выберите "DatabaseName", нажмите "плюс" рядом с "Like" в правой панели и введите имя своей базы данных.
Я тоже всегда сохраняю трассировку в таблице, чтобы после факта я мог выполнять LIKE-запросы к данным трассировки.
В свойствах трассы перейдите на вкладку Выбор события. Затем щелкните переключатель «Показать все столбцы». После этого нажмите кнопку «Фильтры столбцов».
Теперь вы можете увидеть свойство «Имя базы данных» и щелкнуть по нему. Разверните окно «Мне нравится», введите имя своей БД и нажмите «ОК», и теперь вы можете запустить профилировщик.
Экспериментально я смог наблюдать это:
Когда SQL Profiler 2005 или SQL Profiler 2000 используется с базой данных, находящейся в SQLServer 2000 - упомянутая проблема сохраняется, но когда SQL Profiler 2005 используется с базой данных SQLServer 2005, она работает отлично!
В заключение, проблема, кажется, распространена в SQLServer 2000 и устранена в SQLServer 2005.
Решение проблемы при работе с SQLServer 2000 (как объяснено wearejimbo)
Определите DatabaseID базы данных, которую вы хотите отфильтровать, запросив таблицу sysdatabases, как показано ниже
SELECT * FROM master..sysdatabases WHERE name like '%your_db_name%' -- Remove this line to see all databases ORDER BY dbid
Используйте фильтр DatabaseID (вместо DatabaseName) в окне "Новая трассировка" SQL Profiler 2000
В свойствах трассировки перейдите на вкладку " Выбор событий " вверху рядом с " Общие". Затем нажмите Фильтры столбцов... внизу справа. Затем вы можете выбрать, что фильтровать, например, TextData
или же DatabaseName
,
Разверните узел "Мне нравится" и введите свой фильтр с процентом %
признаки как %MyDatabaseName%
или же %TextDataToFilter%
, Без %%
признаки фильтр не будет работать.
Кроме того, обязательно установите флажок Исключить строки, которые не содержат значений. Если вы не можете найти поле, которое хотите отфильтровать, например: DatabaseName
перейдите на вкладку Общие и измените свой шаблон, пустой должен содержать все поля.
Создайте новый шаблон и проверьте DBname. Используйте этот шаблон для своего файла трассировки.