Профілер SQL Server - як відфільтрувати трасування, щоб відображати лише події з однієї бази даних?


Відповіді:


574

У розділі Властивості трасування> вкладка Вибір подій> виберіть Показати всі стовпці. Тепер під фільтрами стовпців ви повинні побачити ім'я бази даних. Введіть ім'я бази даних для розділу Like, і ви повинні побачити сліди лише для цієї бази даних.


8
Я не знаю, чи це поширена проблема, але коли я запускаю profiler, ім'я бази даних порожнє для багатьох значень, які я відстежую. Мені потрібно використовувати стовпчик DatabaseID і з’ясувати правильні значення для введення, запитуючи таблицю баз системних даних у головній базі даних
Джим Бірчалл

34
Щоб знайти DatabaseID: SELECT [ім'я], [dbid] ВІД [master]. [Dbo]. [Sysdatabases] ORDER BY [name]
Simon

1
Також залежить від обраного вами шаблону, якщо такий є. +1
чудовий

2
І ви повинні це зробити, beforeпочинаючи слід. Якщо ви зробите це після - поле не піддається редагуванню!
DarkWalker

2
Не забудьте зупинити трасування або почати його перед запуском.
Fery

42

У SQL 2005 спочатку потрібно показати стовпець Ім'я бази даних у своєму сліді. Найпростіше зробити це вибрати шаблон настройки, до якого вже додано цей стовпець.

Припустимо, що для фільтрування вибрано шаблон настройки.

  • Перейдіть на вкладку "Вибір подій"
  • Натисніть кнопку "Фільтри стовпців"
  • Позначити Показувати всі стовпці (праворуч вниз)
  • Виберіть "Ім'я бази даних", натисніть на полі праворуч на "Подобається" та введіть ім'я бази даних.

Я завжди зберігаю слід у таблиці, щоб я міг робити запити LIKE на даних сліду після факту.


8

Експериментом я зміг це спостерігати:

Коли SQL Profiler 2005 або SQL Profiler 2000 використовується з базою даних, що зберігаються в SQLServer 2000 - проблема, про яку йдеться, зберігається, але коли SQL Profiler 2005 використовується з базою даних SQLServer 2005, вона працює ідеально!

Підсумовуючи це, видається, що проблема є переважаючою у SQLServer 2000 та виправлена ​​у SQLServer 2005.

Рішення проблеми при роботі з SQLServer 2000 є (як пояснено wearejimbo)

  1. Визначте DatabaseID бази даних, яку ви хочете відфільтрувати, запитуючи таблицю баз систем, як показано нижче

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
  2. Використовуйте фільтр DatabaseID (замість DatabaseName) у вікні New Trace SQL Profiler 2000


4

У властивостях Trace перейдіть на вкладку Вибір подій у верхній частині біля Загального . Потім натисніть Фільтри стовпців ... праворуч внизу. Потім ви можете вибрати фільтрувати, наприклад, TextDataабо DatabaseName.

Розгорніть вузол Like, і введіть свій фільтр із %знаками відсотків, як %MyDatabaseName%або %TextDataToFilter%. Без того%% знаків фільтр не буде працювати.

Також обов’язково поставте прапорець Виключити рядки, які не містять значень. " Якщо ви не можете знайти поле, яке ви хочете фільтрувати, наприклад, DatabaseNameперейдіть на вкладку" Загальні " та змінити" Шаблон " , пустий повинен містити всі поля.


1

Створіть новий шаблон і перевірте ім'я DB. Скористайтеся цим шаблоном для свого файлу слідів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.