💡
原文英文,约600词,阅读约需3分钟。
📝
内容提要
在圣诞节期间,一位用户询问查询性能不一致的问题。分析发现,尽管有索引,但在处理数亿行数据时,由于需要验证小时和分钟,查询速度缓慢。尝试优化索引未果,最终通过重写查询,利用索引块过滤,显著提升了性能。
🎯
关键要点
- 用户询问查询性能不一致的问题,查询时间有时长达30分钟。
- 在处理数亿行数据时,查询速度缓慢,尽管有索引。
- 原始查询涉及自连接视图,最终简化为从一个表的SELECT查询。
- 查询的慢速是由于高I/O和执行时共享缓冲区的内容。
- 查询计划显示索引扫描,但每条记录都需要验证小时和分钟。
- 尝试创建部分索引或将小时和分钟包含在索引中未成功。
- 通过运行计数查询发现其在毫秒内完成,使用了INDEX ONLY SCAN。
- 重写查询以优化性能,成功利用索引块过滤。
➡️