本文介绍如何通过确定工作负荷是否充分利用专用 SQL 池的自适应缓存来监视和排查查询性能缓慢的问题。
专用 SQL 池存储体系结构自动对驻留在基于 NVMe 的 SSD 的缓存中最常查询的列存储段进行分层。 当您的查询检索到驻留在缓存中的段时,性能会更高。
可以使用 Azure Monitor 查看缓存指标来排查查询性能问题。 首先转到 Azure 门户,并单击“ 监视”、“ 指标 ”和 “+ 选择范围:
使用搜索和下拉条查找专用 SQL 池。 然后选择“应用”。
缓存故障排除的关键指标是 缓存命中百分比 和 缓存已用百分比。 选择 “缓存命中百分比 ”,然后使用 “添加指标 ”按钮添加 缓存已用百分比。
以下矩阵根据缓存指标的值描述方案:
高缓存命中百分比 | 低缓存命中百分比 | |
---|---|---|
高缓存已用百分比 | 方案 1 | 方案 2 |
缓存使用百分比低 | 方案 3 | 方案 4 |
方案 1: 以最佳方式使用缓存。 排查可能导致查询速度变慢的其他方面的情况。
方案 2: 由于物理读取,当前工作数据集无法容纳到缓存中,导致缓存命中率较低。 请考虑纵向扩展性能级别并重新运行工作负荷以填充缓存。
方案 3: 由于与缓存无关的原因,查询运行速度可能很慢。 排查可能导致查询速度变慢的其他方面的情况。 还可以考虑 纵向缩减实例 ,以减少缓存大小以节省成本。
方案 4: 你有一个冷缓存,这可能是查询速度缓慢的原因。 请考虑重新运行查询,因为工作数据集现在应该已经缓存了。
重要
如果在重新运行工作负荷后缓存命中百分比或缓存使用的百分比未更新,则工作集可能已驻留在内存中。 只有聚集列存储表会被缓存。
有关常规查询性能优化的详细信息,请参阅 “监视查询执行”。