SQL Server分析器-如何过滤跟踪只显示事件从一个数据库?

如何将SQL Server分析器跟踪限制到特定的数据库?我不知道如何过滤跟踪以不看到所连接的实例上所有数据库的事件。

244088 次浏览

在跟踪属性>事件选择选项卡>选择显示所有列。现在,在列筛选器下,您应该看到数据库名称。为Like部分输入数据库名称,您应该只看到该数据库的跟踪。

在SQL 2005中,首先需要在跟踪中显示Database Name列。最简单的方法是选择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解释)

  1. 通过查询下面的sysdatabases表来确定要过滤的数据库的DatabaseID

    SELECT *
    FROM master..sysdatabases
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
    
  2. Use the DatabaseID Filter (instead of DatabaseName) in the New Trace window of SQL Profiler 2000

创建一个新模板并检查DBname。将该模板用于跟踪文件。

在Trace属性中,单击顶部一般旁边的事件选择选项卡。然后单击右下角的列过滤器…。然后你可以选择要过滤的内容,比如TextDataDatabaseName

展开就像节点,并使用百分比%符号(如%MyDatabaseName%%TextDataToFilter%)输入过滤器。如果没有%%符号,过滤器将无法工作。

另外,确保选中复选框排除不包含值的行”如果你找不到你想要过滤的字段,比如DatabaseName,去一般选项卡并更改你的模板,空白的应该包含所有的字段。

在跟踪属性中进入事件选择选项卡。然后单击Show All Columns单选按钮。之后,单击Column Filters按钮。 enter image description here < / p >

现在可以看到Database Name属性并单击它。展开like框并插入您的DB名称,然后单击ok,现在就可以运行分析器了。

enter image description here