减少主键索引的大小

Gar*_*ary 2 sql-server primary-key disk-space azure-sql-database

我正在使用 Azure SQL DB,并注意到我最大的数据库之一似乎有一个总大小为 6Gb 的主键索引。它是uniqueidentifier. 但是,在任何给定时间点,表中的总行数仅约为 78k 行。

该表存储出站电子邮件和短信,因此它会定期填满并清空。我们还对整个数据库进行每周索引维护,因此我试图理解为什么这个 PK 索引看起来远远大于其应有的值。

在某些情况下,HTML 电子邮件的大小几乎为 50KB。

根据我自己的本地测试,从该表中删除行似乎确实减少了 PK 的大小,但这似乎不会在生产数据库上发生。

然后我有什么选择来减少这个索引大小并释放我想象的大量未使用的空间。

Pau*_*ite 6

聚集索引的叶级行内数据,按聚集键逻辑排序。

78,000 行约 50KB 的电子邮件总共包含约 3.6GB 的数据。

对于其他行数据和开销(行标题、页面内未使用的空间),您的情况在预期的范围内。

请参阅文档中的估计聚集索引的大小。

据推测,您的本地测试是使用较小的非生产数据完成的。