数据库中创建索引

 我来答
猪八戒网
2023-04-26 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部

为给定表或视图创建索引。

只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。语法

CREATE[UNIQUE][CLUSTERED|]INDEXindex_name

ON{table|view}(column[ASC|DESC][,...n])

[WITH[,...n]]

[ONfilegroup]::=

{PAD_INDEX|

FILLFACTOR=fillfactor|

IGNORE_DUP_KEY|

DROP_EXISTING|

STATISTICS_NORECOMPUTE|

SORT_IN_TEMPDB

}参数

UNIQUE为表或视图创建唯一索引(不允许存在索引值相同的两行)。视图上的聚集索引必须是UNIQUE索引。在创建索引时,如果数据已存在,Microsoft?SQLServer?会检查是否有重复值,并在每次使用INSERT或UPDATE语句添加数据时进行这种检查。如果存在重复的键值,将取消CREATEINDEX语句,并返回错误信息,给出第一个重复值。当创建UNIQUE索引时,有多个NULL值被看作副本。如果存在唯一索引,那么会产生重复键值的UPDATE或INSERT语句将回滚,SQLServer将显示错误信息。即使UPDATE或INSERT语句更改了许多行但只产生了一个重复值,也会出现这种情况。如果在有唯一索引并且指定了IGNORE_DUP_KEY子句情况下输入数据,则只有违反UNIQUE索引的行才会失败。在处理UPDATE语句时,IGNORE_DUP_KEY不起作用。SQLServer不允许为已经包含重复值的列创建唯一索引,无论是否设置了IGNORE_DUP_KEY。如果尝试这样做,SQLServer会显示错误信息;重复值必须先删除,才能为这些列创建唯一索引。CLUSTERED创建一个对象,其中行的物理排序与索引排序相同,并且聚集索引的最低一级(叶级)包含实际的数据行。一个表或视图只允许同时有一个聚集索引。具有聚集索引的视图称为索引视图。必须先为视图创建唯一聚集索引,然后才能为该视图定义其它索引。在创建任何非聚集索引之前创建聚集索引。创建聚集索引时重建表上现有的非聚集索引。如果没有指定CLUSTERED,则创建非聚集索引。说明因为按照定义,聚集索引的叶级与其数据页相同,所以创建聚集索引时使用ONfilegroup子句实际上会将表从创建该表时所用的文件移到新的文件组中。在特定的文件组上创建表或索引之前,应确认哪些文件组可用并且有足够的空间供索引使用。文件组的大小必须至少是整个表所需空间的1.2倍,这一点很重要。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式