craigster Asked: 2020-03-04 05:36:43 +0800 CST2020-03-04 05:36:43 +0800 CST 2020-03-04 05:36:43 +0800 CST 由于 10GB 的限制,如何使用最少的数据库文件空间在 Mircosoft SQL Server Express 上重建索引 772 由于 10GB 的限制,如何使用最少的数据库文件空间在 Mircosoft SQL Server Express 上重建索引 我的数据库文件大小为 7GB,但我有两个索引位于两个非常分散的最大表上 如果我尝试重建索引 PK_Sale_Dtl 文件大小膨胀到 10GB 并且重建失败并且我无处可去,但是如果我删除索引并重新创建它,文件几乎不会增加 为什么是这样?哪个更好地重建或重新创建索引? sql-server disk-space 2 个回答 Voted Best Answer Tibor Karaszi 2020-03-04T05:55:03+08:002020-03-04T05:55:03+08:00 原因是索引重建意味着在掩护下创建一个新索引,然后删除旧索引。即,当操作运行时,您需要两倍的可用存储量。如果这对您不可行,您基本上有两种选择: 按照相反的顺序自己做:先放下,然后再创造。 或者做 REORGANIZE 而不是 REBUILD。 David Browne - Microsoft 2020-03-04T06:24:01+08:002020-03-04T06:24:01+08:00 为什么是这样??哪个更好重建或重新创建索引? 重建索引会保留现有索引,构建新索引并删除旧索引。 因此,如果您不需要在重建期间让索引可用于查询,请在重建之前删除/创建或禁用它。 禁用索引就像删除它,但您不必记住索引 DDL。例如 alter index ix_SomeIndex on SomeTable disable; alter index ix_SomeIndex on SomeTable rebuild;
原因是索引重建意味着在掩护下创建一个新索引,然后删除旧索引。即,当操作运行时,您需要两倍的可用存储量。如果这对您不可行,您基本上有两种选择:
按照相反的顺序自己做:先放下,然后再创造。
或者做 REORGANIZE 而不是 REBUILD。
重建索引会保留现有索引,构建新索引并删除旧索引。
因此,如果您不需要在重建期间让索引可用于查询,请在重建之前删除/创建或禁用它。
禁用索引就像删除它,但您不必记住索引 DDL。例如