SQL Server Profiler

爱⌒轻易说出口 提交于 2020-02-25 19:17:35

如何将SQL Server Profiler跟踪限制为特定数据库? 我看不到如何过滤跟踪,看不到我连接的实例上的所有数据库的事件。


#1楼

在Trace properties> Events Selection选项卡下>选择show all columns。 现在在列过滤器下,您应该看到数据库名称。 输入Like部分的数据库名称,您应该只看到该数据库的跟踪。


#2楼

在SQL 2005中,首先需要在跟踪中显示“数据库名称”列。 最简单的方法是选择已经添加了该列的Tuning模板。

假设您选择了Tuning模板,请过滤:

  • 单击“事件选择”选项卡
  • 单击“列过滤器”按钮
  • 选中显示所有列(右侧下)
  • 选择“DatabaseName”,单击右侧窗格中“Like”旁边的加号,然后键入数据库名称。

我总是将跟踪保存到表中,所以我可以在事后对跟踪数据执行LIKE查询。


#3楼

在“跟踪”属性中,单击“ 常规”旁边顶部的“ 事件选择”选项卡。 然后单击右下角的“ 列过滤器... ”。 然后,您可以选择要过滤的内容,例如TextDataDatabaseName

展开节点和百分比输入过滤%象星座%MyDatabaseName%%TextDataToFilter% 没有%%符号,过滤器将无法工作。

此外,请确保选中“ 排除不包含值的行 ”复选框如果找不到要查看的字段(例如DatabaseName请转到“ 常规”选项卡并更改模板 ,空白应包含所有字段。


#4楼

通过实验,我能够观察到:

当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. 在SQL事件探查器2000的“新建跟踪”窗口中使用DatabaseID过滤器(而不是DatabaseName)


#5楼

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!