This paper describes AIM (Automatic Index Manager), a configurable index management system, which identifies impactful secondary indexes for SQL databases to efficiently use available resources such as CPU, I/O and storage. It has been validated on thousands of databases which support production systems. With AIM, the physical design of the database adapts itself to the changes in the workload.We lay out the end to end design of AIM while calling out the guarantees and tradeoffs associated with our design choices. Some of the salient features of AIM include fast convergence even while recommending wide composite indexes, reduced reliance on the query optimizer and a "no regression" guarantee for production workloads. Each index recommendation from AIM is accompanied with a metrics driven explanation, making it easier to verify machine driven changes.AIM is one of the few industrial strength index recommendation engines that is deployed on production databases at a large scale. The experimental results show that AIM is quick in identifying the most effective indexes and the resulting physical design is close to optimal.
翻译:本文描述了AIM(自动索引管理器),一种可配置的索引管理系统,用于为SQL数据库识别高影响力的二级索引,从而高效利用可用资源(如CPU、I/O和存储)。该系统已在支持生产环境的数千个数据库上得到验证。借助AIM,数据库的物理设计能够自适应工作负载的变化。我们阐述了AIM的端到端设计,同时指出了与设计选择相关的保证与权衡。AIM的显著特点包括:即使在推荐宽复合索引时也能快速收敛、减少对查询优化器的依赖,以及对生产工作负载的“无回归”保证。AIM给出的每条索引建议均附有基于指标的解释,便于验证机器驱动的变更。AIM是少数大规模部署于生产数据库的工业级索引推荐引擎之一。实验结果表明,AIM能快速识别最高效的索引,且其产生的物理设计接近最优。