Azure是否自动为数据库表创建索引?意外索引问题咨询
Azure数据库自动添加索引的说明
Azure确实会在特定场景下自动为数据库表添加索引,常见触发场景如下:
- Azure SQL Database自动优化:若开启了自动优化中的自动创建索引功能,数据库会基于查询性能分析结果,自动创建缺失的非聚集索引以提升查询效率;若开启自动删除索引,还会移除长期未使用的索引。
- 系统约束关联索引:创建主键(
PRIMARY KEY)时会自动生成聚集索引(除非显式指定非聚集);创建唯一约束(UNIQUE)时会自动生成非聚集索引(除非指定聚集)。这类属于约束强制要求的系统索引,并非额外自动创建的优化索引。 - Azure Cosmos DB默认索引:Cosmos DB默认会为容器内所有属性自动创建索引,除非你通过自定义索引策略手动关闭或限制自动索引范围。
查看相关说明的途径
- Azure门户:进入对应数据库资源,在「自动优化」(SQL Database)或「索引策略」(Cosmos DB)页面,可查看当前配置及内置官方说明。
- 数据库系统视图:在Azure SQL Database中,可查询
sys.indexes视图,其中is_auto_created列值为1的即为自动创建的索引;通过sys.dm_db_index_usage_stats可查看索引使用情况,辅助判断索引来源。 - Azure官方文档:搜索对应数据库服务的「自动索引」「自动优化」或「索引策略」相关章节,里面会详细说明自动索引的逻辑、触发条件及配置方法。
内容的提问来源于stack exchange,提问作者Drew Burken
相关产品推荐
相关产品推荐

