在读的时候禁用超线程是否会提高 SQL Server 安装的性能我开始想知道 Jeff 的第一个查询得到了什么值:
SELECT * FROM sys.dm_os_wait_stats
order by signal_wait_time_ms desc
这给了我一个结果,我不知道我是否会遇到麻烦(我似乎还没有遇到任何性能问题)。什么会被视为即将出现性能问题的危险信号?
我的最高值是 LATCH_EX、SOS_SCHEDULER_YEILD、CXPACKET、ASYNC_NETWORK_IO 和 PAGELATCH_EX。
答案1
这取决于许多因素。您在服务器上遇到了什么问题?自上次重启以来服务器在线了多长时间?这些等待的 waiting_tasks_count、wait_time_ms 的具体数字是多少?
互联网上有两个关于等待统计数据的优秀资源。第一个是性能调优等待和队列最佳实践白皮书第二篇是 Bob Ward 的博客文章SQL Server 等待类型存储库在 PSS 团队博客上。
您看到的数字可能完全正常,只是 SQL Server 正常运行的一部分。在某个时间点,各种等待类型的等待时间会累积起来,但同样,等待的时间就是执行中浪费的时间,因此尽量减少等待是调整的好方法。您必须从服务器运行的时间或自上次重置等待统计信息以来已经过了多长时间的角度来看待事物。如果我正在查看已运行很长时间的服务器,我通常会使用 DBCC SQLPERF 清除等待统计信息,然后在稍后的固定时间点查看它们,此时我知道环境的代表性工作负载已经运行,并且我知道它何时重置。这样,我就可以了解我所查看的信息。