後,我最近嘗試清潔桌子。該表是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
您是否還可以包含用於報告空間使用情況的命令。順便說一句,你可能想編輯你的原始問題以提供這些信息。 –