后,我最近尝试清洁桌子。该表是40GB大,索引空间是400MB。从表中删除了很多记录后,它减少到4GB,但索引空间仍然是大约400MB。我认为这可能是因为索引碎片时,我删除记录,然后我重建索引,但索引空间仍然是398MB。我不明白,如果表格大小减少了10倍,为什么索引空间不会按比例减少?SQL索引空间不会降低删除数据从表
指数的构建
ALTER TABLE [CADIS_PROC].[DC_UPPREBBO_INFO_VALUE]
ADD PRIMARY KEY CLUSTERED (
[CADIS_ID] ASC,
[SOURCE] ASC,
[SOURCE_KEY] ASC,
[FILE_DATE] ASC)WITH
(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
脚本重建索引
ALTER INDEX IndexName ON Schema.Table
REBUILD;
GO
我如何检查索引碎片,我也对对点击桌子上看到它的财产,它显示的大小表和索引空间。
SELECT index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(), NULL, NULL, NULL)
该索引是表中唯一的索引,它是碎片的0.8%。
当你说你重建索引时,你究竟做了什么?你也可以提供有关索引的任何细节,因为这也有帮助。 –
索引创建如下 ALTER TABLE [CADIS_PROC]。[DC_UPPREBBO_INFO_VALUE] WITH(PAD_INDEX ADD聚集主键 ( [CADIS_ID] ASC, [SOURCE] ASC, [SOURCE_KEY] ASC, [FILE_DATE] ASC )= OFF,STATISTICS_NORECOMPUTE = OFF,SORT_IN_TEMPDB = OFF,IGNORE_DUP_KEY = OFF,ONLINE = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)ON [PRIMARY] GO' 我使用SQL Management Studio中的选项来重建索引[链接](https://msdn.microsoft.com/en-us /library/ms189858.aspx) – JOHN
您是否还可以包含用于报告空间使用情况的命令。顺便说一句,你可能想编辑你的原始问题以提供这些信息。 –