我有一个带有严重性能问题的sql server 2000数据库,以及一些可能针对它运行的大量低效查询。
我想知道是否存在某种类型的查询可以在系统表上运行以查找针对数据库运行的最慢运行查询,显示sql,运行时,上次运行日期等。
在一封不再与该公司合作的人发来的旧电子邮件中,我看到了此报告的屏幕截图:
这正是我正在寻找的东西,但不知道该报告是如何生成的。检查针对您的数据库的查询以发现表现不佳的人的正确方法是什么?
更新:上面的报告实际上是使用SQL Nexus生成的:
http://sqlnexus.codeplex.com/
另见这个问题:
Is there any tool to see the queries run against the database?
答案 0 :(得分:4)
这可能是一个SQL事件探查器跟踪,它存储在数据库表中并进行报告。 它需要运行跟踪(最好使用跟踪存储过程,而不是通过SQL事件探查器手动),将跟踪放入数据库(例如,INSERT INTO SELECT fn_trace_gettable)a然后针对该数据执行各种有趣的SELECT语句。
困难的部分是使跟踪参数正确,并使跟踪在正确的时间运行。
有些自动化此过程的工具以及其他与性能相关的数据是来自Microsoft的SQL Nexus,但我从未将其用于SQL2000。