我有一个应用程序将部署在Azure上。
如果我们不关心托管的成本(这将更多地依赖于 CPU 和 IO 而不是响应时间(,那么优化查询以实现高频利用率(每秒将执行多次的查询(的最佳策略是什么?
- 缩短响应时间
- 降低 CPU 利用率
- 减少 IO
当然,所有这些优化方案都有一个目标=每秒执行最大查询数。
最重要的策略是什么,为什么?
减少 IO。即使使用高级存储,Azure 的 IOPS 也低得惊人。我想这就是地理镜像的代价。将高频查询的所有数据保存在 SQL Server VM 上的 SSD 临时存储上的 tempdb 中。或者尝试使用内存优化表。
额外的 CPU 可能很昂贵,但它是可用的。
如果 VM 位于同一地缘组中,则可以缩短它们之间的响应时间。对于客户端响应时间,请在 ping 飞行时选择最近的区域。
这很难回答,因为有很多依赖关系。
- 数据结构(表、索引、变量类型(
- 发送到客户端的数据量(1 行包含 1KB 数据或仅一行包含 500kB 数据(
- 是否使用老虎
- 写入与读取 5 个数据文件组。
所以在这位圣人身上,我们只能想象如何处理它......