Indexing 在SQL Azure上创建非聚集索引会占用大量存储空间

Indexing 在SQL Azure上创建非聚集索引会占用大量存储空间,indexing,azure-sql-database,Indexing,Azure Sql Database,我认为非聚集/逻辑索引只包含指向实际记录的指针 我有一个在主键(id)上有聚集索引的表,一个datetime和一个varchar(还有一些我没有索引的其他列) 我使用命令: CREATE INDEX Index_CreatedDesc_AccountAsc ON MyTable (Created desc, Account asc) 该表有5亿条记录。我正在实时观察Azure数据库指标,因为它创建了索引(到目前为止运行了大约1小时30分钟) 它从111GB开始,现在表的大小增加到120GB。如

我认为非聚集/逻辑索引只包含指向实际记录的指针

我有一个在主键(id)上有聚集索引的表,一个datetime和一个varchar(还有一些我没有索引的其他列)

我使用命令:

CREATE INDEX Index_CreatedDesc_AccountAsc ON MyTable (Created desc, Account asc)
该表有5亿条记录。我正在实时观察Azure数据库指标,因为它创建了索引(到目前为止运行了大约1小时30分钟)


它从111GB开始,现在表的大小增加到120GB。如果它只需要创建指向物理记录/数据页的指针,为什么会占用这么多空间?

它不仅仅是指针。实际上,Azure SQL数据库和SQL Server正在创建一个平衡树或b-树(更确切地说是b-加号树),正如SQL手册中所解释的那样。B型树一开始很小,形状完美,长得很好,可以长得很大。如前所述,如果不定期对它们进行碎片整理,它们可能会变得支离破碎并占用更多空间