如何将SQL Server Profiler跟踪限制为特定数据库?我看不到如何过滤跟踪,看不到我连接的实例上所有数据库的事件。
答案 0 :(得分:532)
在Trace属性>下“事件选择”选项卡>选择显示所有列。现在在列过滤器下,您应该看到数据库名称。输入Like部分的数据库名称,您应该只看到该数据库的跟踪。
答案 1 :(得分:38)
在SQL 2005中,首先需要在跟踪中显示“数据库名称”列。最简单的方法是选择已经添加了该列的Tuning模板。
假设您选择了Tuning模板,请过滤:
我总是将跟踪保存到表中,所以我可以在事后对跟踪数据执行LIKE查询。
答案 2 :(得分:8)
通过实验,我能够观察到这一点:
当SQL Profiler 2005或SQL Profiler 2000与驻留在SQLServer 2000中的数据库一起使用时 - 问题提到的问题仍然存在,但是当SQL Profiler 2005与SQLServer 2005数据库一起使用时,它的工作正常完美!
总结一下,这个问题似乎在SQLServer 2000&在SQLServer 2005中进行了纠正。
处理SQLServer 2000时的问题解决方案是(正如wearejimbo所解释的)
通过查询sysdatabases表来识别要筛选的数据库的DatabaseID,如下所示
SELECT *
FROM master..sysdatabases
WHERE name like '%your_db_name%' -- Remove this line to see all databases
ORDER BY dbid
在SQL事件探查器2000的“新建跟踪”窗口中使用DatabaseID过滤器(而不是DatabaseName)
答案 3 :(得分:4)
在“跟踪”属性中,单击常规旁边顶部的事件选择选项卡。然后单击右下角的列过滤器... 。然后,您可以选择要过滤的内容,例如TextData
或DatabaseName
。
展开赞节点,然后输入包含%
或%MyDatabaseName%
等%TextDataToFilter%
个百分号的过滤器。没有%%
标志,过滤器将无效。
另外,请务必选中复选框排除不包含值的行<&em; 如果找不到要查看的字段,请{} {}}转到< em>常规标签并更改模板,空白应包含所有字段。
答案 4 :(得分:1)
创建一个新模板并检查DBname。将该模板用于跟踪文件。