系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > MsSql > 詳細頁面

sql server臨時刪除/禁用非聚集索引并重新創建加回/啟用的簡便編程方法研究對比

時間: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
復制代碼
分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

jlzzjlzz亚洲乱熟在线播放