系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > 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
复制代码
分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载