我正处于一个新工作的状态,我必须支持几个遗留系统。最初的开发人员已经不在了。这些遗留系统真正扼杀了我们的SQL Server并破坏了性能。我知道代码中可以做很多事情,但重写代码确实是我的最后手段。
我正在寻找的是某种工具,它将监控进入服务器的查询并提供有关索引解决方案的建议。我知道我可以使用SQL Server Profiler,但我正在寻找一些更友好的东西以及可以帮助我做出索引决策的东西。
我知道我没有很好地解释,但我确信这是一个常见的请求。我想对索引做出明智的决定,避免“从臀部射击”并将所有内容编入索引。感谢您的任何建议!
答案 0 :(得分:2)
您不需要第三方工具。
假设SQL Server 2005+只要您可以使用SQL Profiler(实际上是SQL Trace - 不要使用Profiler GUI来尽可能减少跟踪开销)来收集代表性工作负载,您可以使用{{ 3}}自动分析工作负载并提出索引建议。
您还可以使用Database Tuning Advisor快速了解要调查的区域,但DTA会进行更全面的分析,并考虑索引可能对数据修改语句产生的不利影响。
答案 1 :(得分:1)
+1 Martin's answer,但由于您询问了第三方工具,我会提到我最喜欢的一个(不,我不为公司工作)。 Ignite for SQL Server在根据wait time analysis分析服务器活动方面表现出色。它不会为您提供建议,但它会快速识别您需要集中精力的最糟糕的查询。
答案 2 :(得分:0)
SQL Server 2005+有很多DMV(动态管理视图),您可以查询以获取服务器信息,以及Profiler / SQL跟踪工具。
我们管理多个大型数据库服务器。
Idera是一个很容易管理多个数据库服务器的好工具。
如果您了解有关SQL Server内置功能的更多信息,我认为您会做出更好的DBA。
浏览
http://msdn.microsoft.com/en-us/library/ms188754.aspx
了解有关DMV和功能的更多信息。
性能的另一个常见问题可能是您的索引。
这是一个很棒的教程,它将DMV与改进的索引结合在一起:
作为一个很好的起点,Idera确实值得一试。结合DMV& SQL跟踪不应该太多,你将无法修复。
Idera只是把大部分的工作都放在做事上。
http://www.idera.com/Content/Home.aspx
Idera:SQL诊断管理器