当前位置:  开发笔记 > 数据库 > 正文

SQL Server Profiler - 如何过滤跟踪以仅显示来自一个数据库的事件?

如何解决《SQLServerProfiler-如何过滤跟踪以仅显示来自一个数据库的事件?》经验,为你挑选了3个好方法。

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



1> Gulzar Nazim..:

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


要查找DatabaseID:SELECT [name],[dbid] FROM [master].[dbo].[sysdatabases] ORDER BY [name]
我不知道这是否是一个常见问题,但是当我运行探查器时,我追踪的许多值的数据库名称都是空白的.我必须使用DatabaseID列并通过查询master数据库中的sysdatabases表找出要输入的正确值
你必须在开始追踪之前做到这一点.如果你之后这样做 - 该字段将无法编辑!

2> Todd Price..:

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

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

单击"事件选择"选项卡

单击"列过滤器"按钮

选中显示所有列(右侧下)

选择"DatabaseName",单击右侧窗格中"Like"旁边的加号,然后键入数据库名称.

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



3> 小智..:

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

当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)

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有