如何将SQL Server Profiler跟踪限制在特定数据库中?我无法看到如何过滤跟踪以不显示连接的实例上所有数据库的事件。
如何将SQL Server Profiler跟踪限制在特定数据库中?我无法看到如何过滤跟踪以不显示连接的实例上所有数据库的事件。
在Trace属性 > 事件选择选项卡中 > 选择显示所有列。现在在列筛选器下,您应该看到数据库名称。将数据库名称输入到“Like”部分,然后您只能看到该数据库的跟踪信息。
在SQL 2005中,您首先需要在跟踪中显示“数据库名称”列。最简单的方法是选择具有该列的Tuning模板。
假设您选择了Tuning模板,要过滤:
我总是将跟踪保存到表中,这样我就可以在事后对跟踪数据进行LIKE查询。
通过实验我能够观察到以下情况:
当使用SQL Profiler 2005或者SQL Profiler 2000与存储在SQLServer 2000中的数据库进行操作时,出现了上述问题。但是,当使用SQL Profiler 2005与SQLServer 2005数据库进行操作时,它完美地工作!
总之,该问题似乎普遍存在于SQLServer 2000并且已在SQLServer 2005中得到纠正。
解决SQLServer 2000的问题的方法如下(由wearejimbo解释):
Identify the DatabaseID of the database you want to filter by querying the sysdatabases table as below
SELECT *
FROM master..sysdatabases
WHERE name like '%your_db_name%' -- Remove this line to see all databases
ORDER BY dbid
Use the DatabaseID Filter (instead of DatabaseName) in the New Trace window of SQL Profiler 2000
TextData
或DatabaseName
。%
输入您的筛选条件,例如%MyDatabaseName%
或%TextDataToFilter%
。没有%%
符号,筛选器将无法正常工作。DatabaseName
),请转到常规选项卡并更改您的模板,空白的模板应包含所有字段。