如何将SQL Server分析器跟踪限制到特定的数据库?我不知道如何过滤跟踪以不看到所连接的实例上所有数据库的事件。
在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解释)
通过查询如下所示的sysdatabases表,确定要筛选的数据库的DatabaseID SELECT * 从主. . sysdatabases WHERE name like '%your_db_name%'——删除这一行以查看所有数据库 dbid订购 在SQL Profiler 2000的新建跟踪窗口中使用DatabaseID筛选器(而不是DatabaseName)
在Trace属性中,单击顶部General旁边的Events Selection选项卡。然后点击列过滤器…在右下角。然后可以选择要过滤的内容,比如TextData或DatabaseName。
展开Like节点并输入您的筛选器,使用百分比%符号,如%MyDatabaseName%或%TextDataToFilter%。如果没有%%符号,过滤器将无法工作。
此外,确保选中复选框排除不包含值的行'如果你找不到你想要过滤的字段,如DatabaseName,去General选项卡并更改你的模板,空白的应该包含所有字段。
在Trace属性中选择Event Selection选项卡。然后单击Show All Columns单选按钮。之后,单击Column Filters按钮。
现在可以看到Database Name属性并单击它。展开like框并插入您的DB名称,然后单击ok,现在就可以运行分析器了。
推荐文章
- 我如何在T-SQL用逗号格式化一个数字?
- LEFT OUTER JOIN如何返回比左表中存在的记录更多的记录?
- 如何用SQL语句计算百分比
- SQL Server动态PIVOT查询?
- 如何等待2秒?
- SQL Server: CROSS JOIN和FULL OUTER JOIN的区别是什么?
- varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?
- 向现有表添加主键
- 我应该在SQL varchar(长度)中考虑电话的最长的全球电话号码是什么
- 表中标识列的显式值只能在使用列列表且IDENTITY_INSERT为ON SQL Server时指定
- 如何确定已安装的SQL Server实例及其版本?
- Scope_Identity()、Identity()、@@Identity和Ident_Current()之间的区别是什么?
- 如何在TSQL中刷新打印缓冲区?
- 如何用一个SQL查询从数据库中删除所有表?
- SQL查询返回两个表之间的差异