mssql重建索引 Sql Server中ALTER INDEX的常用用法解析_踏雪无痕的博客
通过禁用、重新生成或重新组织索引,或通过设置索引的相关选项,修改现有的表索引或视图索引(关系索引或 XML 索引)。
它的功能很多,特别是对索引的操
alter index在MSDN中是这样解释的: 通过禁用、重新生成或重新组织索引,或通过设置索引的相关选项,修改现有的表索引或视图索引(关系索引或 XML 索引)。 它的功能很多,特别是对索引的操作。可惜自己对它的深入用法也不是很清楚,仅讲讲我自己常用它来实现的几个功能: 1,重建索引 2,重组索引 3,禁用索引 4,启用索引 5,禁用约束 6,启用约束 下面我们来一一讲解上面几个功能的实现 一、重建索引 随着数据库的数据量的增多,数据库在查找数据的时候会越来越慢,就好比一本书,当书越来越厚,我们要在这本书中找到想要的东西就会越来越慢,这时候,就会在书的前面增加目录来让我们快速查找要想要的信息。数据库也是一样,当其中的数据越来越的时候,我们也应该为数据库建立一个目录,以方便数据库快速的找到我们要查询的数据。这个目录,在数据库中就称之为索引。 当索引建立后,在我们对数据库进行增删改的过程中,会参生一定量的索引碎片,这些碎片会影响索引的查找速度,所以当碎片达到一定程序的时候,我们就需要对索引进行整理了。 利用alter index重建索引的sql语句: ALTER INDEX 索引名 ON 表名 REBUILD 如果我们要重建某表的所有索引名,可以将上面sql语句中的’索引名’改为关键字’ALL’,即sql语句如下: ALTER INDEX all ON 表名 REBUILD 当然,重建索引的方法还可以在microsoft sql server management studio中选择:要重建的索引所在的表- >“索引”,选择要查看的索引,选择"重新生成"或者"重新组织"来重建索引。 二,重组索引 需要重组索引的原因与重建索引的原因一样,都是为了让我们的索引更有效。 利用alter index重组索引的sql语句如下: ALTER INDEX 索引名 ON 表名 REORGANIZE 其实也就是关键字REBUILD与REORGANIZE的区别。 如果我们要重组某表的所有索引名,可以将上面sql语句中的’索引名’改为关键字’ALL’,即sql语句如下: ALTER INDEX all ON 表名 REORGANIZE 既然重组索引与重建索引的最终目的都是一样mssql重建索引,那么我们什么时候需要重建索引,什么时候需要重组索引呢?如果碎片比小于30%,我们可以重新组织索引,如果碎片比大于等于30%,我们可以选择重新生成索引。 查看索引碎片的方法可以参考如下文章: 利用sys.dm_db_index_physical_stats查看索引碎片等数据 三,禁用索引 禁用索引可以用以下sql语句来实现: ALTER INDEX ‘索引名’ ON ‘表名’ DISABLE 四,启用索引 如果索引被禁用,则我们可以通过重建索引来重新启用它。 五,禁用约束 禁用约束的sql语句如下: ALTER INDEX ‘主键名’ ON ‘表名’ DISABLE 该方法是通过禁用主键来禁用该主键所对应的所有外键,在外键被禁用时sql server会显示警告消息,比如我在禁用一个建有外键的主键时,sql server提示了以下消息: 警告: 由于禁用了索引 ‘PK__Assets_BackUp__3AC8D058’,导致引用表 ‘Assets_BackUp’ 的表 ‘Assets_BackUp_HrGoods’ 上的外键 ‘DF_Assets_HG_Assets_BU’ 也被禁用。 警告: 由于禁用了索引 ‘PK__Assets_BackUp__3AC8D058’,导致引用表 ‘Assets_BackUp’ 的表 ‘Assets_BackUp_Assets’ 上的外键 ‘FK_Assets_BA_Assets_BU’ 也被禁用。 六,启用约束 主键一旦被禁用,那么它对应的外键也禁用了,那么要如何重新启用这些约束呢?我们只要重建主键即可,对应的外键约束也自动被启用了。 sql语句如下: ALTER INDEX ‘主键名’ ON 表名 REBUILD (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |