回答
嗯,SQL Server不按表名跟踪这些统计数据。但是,您可以查看像sys.dm_exec_query_stats
这样的DMV,以查看哪些查询花费的时间最长。
SELECT [sql] = SUBSTRING
(
st.[text],
(s.statement_start_offset/2)+1,
(CASE s.statement_end_offset
WHEN -1 THEN DATALENGTH(CONVERT(NVARCHAR(MAX), st.[text]))
ELSE s.statement_end_offset END
- s.statement_start_offset)/2
), s.*
FROM sys.dm_exec_query_stats AS s
CROSS APPLY sys.dm_exec_sql_text(s.[sql_handle]) AS st
WHERE s.execution_count > 1
AND st.[dbid] = DB_ID('Your_ERP_Database_Name')
ORDER BY total_worker_time*1.0/execution_count DESC;
当然,你可以通过任何你想要的度量订购,并迅速眼球的第一列,看看您识别任何可疑活动。
你也可以看看sys.dm_exec_procedure_stats
来标识消耗高持续时间或读取程序。
请记住,这些和其他DMV重置各种事件,包括重新启动,服务重新启动等。所以如果你想保持这些指标的趋势/基准/比较目的的历史记录,你将有快照他们自己,或获得第三方产品(如SQL Sentry Performance Advisor),可以帮助这一点和更多。
声明:我SQL哨兵工作。
您可以创建一个SQL Server审核按以下链接:
http://msdn.microsoft.com/en-us/library/cc280386(v=sql.105).aspx
@乔希 - 加拉赫 我们** **不知道_SQL服务器AUDIT_的。 谢谢你指出这一点。 在不久的将来,我们将着眼于在SQL Server上实现这一点。不得不跳过几个认证环节,但应该可以做到。 在短期内,我们会根据** Aaron **提出的命令运行脚本,因为我们有时间限制。 再次感谢您的回复 –
SQL Server确实捕获了您询问的信息,但它是基于每个索引而不是每个表 - 查看sys.dm_db_index_operational_stats和sys.dm_db_index_usage_stats。您必须根据object_id来聚合数据以获取表信息。但是,有一些注意事项 - 例如,如果不使用索引(不读取或不写入),则不会显示在输出中。这些统计信息在实例重新启动时重置,并且在重建索引时存在导致它们在index_usage_stats中重置的错误(https://connect.microsoft.com/SQLServer/feedback/details/739566/rebuilding-an-index-clears-stats-from-sys-dm-db-index-usage-stats)。而且,DMV的输出之间存在显着差异 - 请查看Craig Freedman的帖子以获取更多信息(http://blogs.msdn.com/b/craigfr/archive/2008/10/30/what-is-the-difference-between-sys-dm-db-index-usage-stats-and-sys-dm-db-index-operational-stats.aspx)。
更大的问题是,什么问题是你想有了这个信息来解决?我同意Aaron的观点,即寻找花费很长时间的查询是一个更好的开始优化的地方。但是,我想让你知道SQL Server确实有这些信息。
我们使用sp_whoisActive从Adam Mechanics blog。
它为我们提供了一个当前正在服务器上进行的快照,以及语句正在使用的执行计划。
它易于使用且免费。
- 1. 超时时访问SQL Server 2008 R2的
- 2. 访问SQL Server 2008 R2的Linux?
- 3. 远程访问SQL Server 2008 R2
- 4. SQL Server 2008 R2和SQL Server 2008 R2 RTM之间的差异
- 5. SQL Server 2008 R2表查询
- 6. 使用SQL Server Management Studio访问SQL Server 2008 R2 Express
- 7. SQLDependency SQL Server 2008 R2
- 8. SQL Server 2008 R2 OBJECT_ID
- 9. 从远程客户端访问Windows Server 2008 R2上的SQL Server
- 10. 从SQL Server 2008 R2 Express升级到SQL Server 2008 R2企业
- 11. SQL Server 2008 R2空间查询
- 12. Windows Server 2008 R2远程访问
- 13. Sql Server 2008 R2的DotNetNuke配置问题
- 14. SQL Server 2008 R2连接问题
- 15. SQL Server 2008 R2 - 内存分配问题
- 16. SQL Server 2008 R2复制问题
- 17. SQL Server 2008 R2的透视问题
- 18. SQL Server 2008 R2 - 优化问题
- 19. SQL Server 2000到SQL Server 2008 R2迁移
- 20. SQL Server 2008 R2对SQL Server 2012
- 21. SQL Server 2008 R2中的SQL Server Reporting Services
- 22. Redmine与SQL Server 2008 R2
- 23. WPF和SQL Server 2008 R2 DB
- 24. Sql Server 2008 R2 Reporting Services
- 25. Attunity Terada - Sql Server 2008 R2
- 26. 不能在SQL Server 2008 R2
- 27. sql server 2008 r2 express edition
- 28. SQL Server 2008 R2合并
- 29. SQL Server 2008 R2的性能
- 30. SQL Server 2008 R2的枢轴
感谢您的信息。我们显然一直在寻找我们已经安装的MS SQL版本中不存在的功能(我们也运行DB2,Oracle,Informix等) 我们将按照您的建议脚本化这些命令,同时也关注SQL Sentry PA 。 感谢您的回复 –