我有一个只读数据库(产品),它依赖于自己的 Sql Server 2008。
我已经通过查看活动监视器 - 报告中最昂贵的查询来优化查询。我按 CPU 成本订购了报告。我现在每秒有 50 个查询,并且没有查询超过 300 毫秒。
CPU 时间还可以(30%),内存仅被 20%(64GB)使用。
有一个问题:磁盘时间稳定在 100%(我查看了空闲时间性能计数器并使用了 ideras SQL 诊断管理器)。我可以看到产品数据库的行为与我的订单数据库不同,后者在不同的机器上并且具有更小的表:如果我查看分析器跟踪,我在产品数据库中的查询显示“读取”列中的值高于 50.000 . 在我的订单数据库中,这些值永远不会高于 1000。product-db 中的查询使用大量通用表表达式,适用于大型表(有些大约有 500 万个条目)。
我不确定是否应该花时间优化查询以提高 i/o 性能,或者是否应该只添加一个服务器。通过优化查询持续时间,我已经添加了缺失的索引。是否针对 i/o 进行优化是通常会做的事情?