時間:2020-04-19來源:電腦系統城作者:電腦系統城
問題場景:
在大批量刪除數據庫表部分數據、archive數據的時候,如果數據庫表的非聚集索引比較多比較大,會嚴重影響刪除性能,這時候就需要采取適當措施,避免刪除數據過程中不斷去維護非聚集索引,可以先臨時刪除/禁用一些非聚集索引,再進行數據刪除操作,提高刪除性能,刪除完數據后,再重新創建加回/啟用這部分非聚集索引。
解決方案1:
先備份非聚集索引,然后刪除非聚集索引,最后重新創建非聚集索引。刪除和創建索引腳本如下:
--臨時刪除非聚集索引 drop index [NonClusteredIndex-502219048] on [dbo].[table1] --============== --刪除部分表數據 --============== --重新創建加回非聚集索引 create nonclustered index [NonClusteredIndex-502219048] on [dbo].[table1] ( [num] asc )
解決方案2(推薦):
先禁用非聚集索引,最后重新啟用非聚集索引。禁用和啟用索引腳本如下:
--臨時禁用非聚集索引 alter index [NonClusteredIndex-502219048] on [dbo].[table1] disable --============== --刪除部分表數據 --============== --重新啟用非聚集索引 alter index [NonClusteredIndex-502219048] on [dbo].[table1] rebuild
2022-03-09
sql語句中union的用法與踩坑記錄2022-03-05
MSSQL 附加數據庫提示“錯誤 823”數據恢復實操2022-03-05
sqlserver數據庫加密后無法使用MDF,LDF,log文件名稱被修改的數據恢復交叉聯接(cross join)的概念 2、交叉聯接的語法格式 3、交叉查詢的使用場景 3.1 交叉聯接可以查詢全部數據 3.2 交叉聯接優化查詢性能...
2021-04-22