SQL Server:响应时间与Cpu利用率和IO的关系

时间:2016-02-12 16:36:43

标签: sql sql-server query-optimization

我有一个将部署在Azure上的应用程序。

如果我们不关心托管的成本(它将更多地依赖于CPU和IO而不是响应时间),那么优化高频率利用查询的最佳策略是什么(将执行许多查询每秒一次)?:

  • 缩短响应时间
  • 降低cpu利用率
  • 减少IO

当然,所有这些优化方案都有一个目标=每秒执行最大查询次数。

最重要的策略是什么?为什么?

2 个答案:

答案 0 :(得分:1)

减少IO。即使使用高级存储,Azure也具有令人震惊的低IOPS。我猜这是地理镜像的代价。将tempdb中的高频查询的所有数据保留在SQL Server VM上的SSD临时存储中。或者尝试使用内存优化表。

额外的CPU可能很昂贵,但可以使用。

如果VM位于同一个Affinity Group,则可以减少VM之间的响应时间。对于客户响应时间,选择最近的区域作为ping苍蝇。

答案 1 :(得分:0)

由于存在很多依赖关系,因此很难回答。

  
      
  1. 数据结构(表,索引,变量类型)
  2.   
  3. 向下发送到客户端的数据量(1行包含1kb数据或只包含一行,包含500kB数据)
  4.   
  5. 是老虎使用
  6.   
  7. 写入vs读取   5个数据文件组。
  8.   

所以在这个圣人身上,我们只能想象如何处理......