【发布时间】:2011-04-28 06:22:00
【问题描述】:
我有一个只读数据库(产品),它依赖于自己的 Sql Server 2008。
我已经通过查看活动监视器 - 报告中最昂贵的查询来优化查询。我按 CPU 成本订购了报告。我现在有大约 50 次查询/秒,并且没有查询超过 300 毫秒。
CPU 时间正常 (30%),内存仅使用了 20%(64GB)。
有一个问题:磁盘时间稳定在 100%(我查看了空闲时间性能计数器并使用了 ideras SQL 诊断管理器)。我可以看到产品数据库的行为与我的订单数据库不同,后者在不同的机器上并且具有更小的表:如果我查看分析器跟踪,我在产品数据库中的查询显示“读取”列中的值高于 50.000 .在我的订单数据库中,这些值从不高于 1000。product-db 中的查询使用大量通用表表达式,适用于大型表(有些大约 500 万个条目)。
我不确定是否应该花时间优化查询以提高 i/o 性能,或者是否应该只添加一个服务器。通过优化查询持续时间,我已经添加了缺失的索引。是否针对 i/o 进行了优化?
【问题讨论】:
-
这对于服务器故障来说可能是一个更好的问题。您是否只有一张包含事务日志、用户数据库文件和 tempdb 的光盘?如果不是,哪些磁盘队列长度较长?
-
@Martin Smith 他的数据库是只读的,所以我预计事务日志不会有很大的负载。
-
@Peter - 确实。不过,我有点不确定
order db的来源。 @Malcolm - 这是在完全独立的硬件上吗? -
订单数据库位于完全不同的服务器上。我只是用它来查看没有 i/o 压力的系统上的跟踪是什么样的。
标签: performance sql-server-2008 hard-drive