sql server 索引
https://www.cnblogs.com/selene/p/4474721.html
create nonclustered index index_button_order on dbo.t_dd_cb_form_button(order_num)--一般非唯一非聚焦索引,对应mysql中的【key 索引名称(索引字段)】
CONSTRAINT t_dd_cb_form_head_ibfk_1 FOREIGN KEY (data_source_id) REFERENCES t_dd_s_data_source (id)--外键索引
create unique index 索引名 on 表名(列名1,列名2……)--复合唯一性索引
CREATE INDEX命令既可以创建一个改变表的物理顺序的聚集索引,也可以创建提高查询性能的非聚集索引。
语法如下:
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERRED]
INDEX index_name ON {table | view }(column [ASC | DESC ] [,...n])
[ INCLUDE ( column_name [ ,...n])]
[with
(
PAD_INDEX={ON | OFF}
| FILLFACTOR =fillfactor
| SORT_IN_TEMPDB={ ON | OFF}
| IGNORE_DUP_KEY ={ ON | OFF}
| STATISRICS_NORECOMPUTE ={ ON | OFF}
| DROP_EXISTING = { ON | OFF}
| ONLINE ={ ON | OFF}
| ALLOW_ROW_LOCKS ={ ON | OFF}
| ALLOW_PAGE_LOCKS={ ON | OFF}
| MAXDOP =max_degree_of_parallelism
) [,...n] ]
UNIQUE:表示在表或视图上创建唯一索引。唯一索引不允许两行具有相同的索引键值。视图的聚集索引必须唯一。
CLUSTERED:表示创建聚集索引,在创建任何非聚集索引之前创建聚集索引,创建聚集索引时会重新生成表中现有的非聚集索引。如果没有指定CLUSTERED,则创建非聚集索引。
NONCLUSTERED:表示创建一个非聚集索引,非聚集索引数据行的物理顺序独立于与索引排序,每个表最多可包含999个非聚集索引,NONCLUSTERED是CREATE INDEX的默认值。
index_name:指定索引的名称,索引名称在表或视图中必须唯一,但在数据库中可不必唯一。
ON{table | view }:指定索引所属的表或视图。
Column:指定索引基于一列或者多列。指定两个或者多个列名,可为指定的列的组合值创建组合索引,{table | view}后的括号中,按排序优先级列出组合索引要包括的列。一个组合索引键中最多可组合16列。组合索引键中的所有列必须在同一个表或视图中。
[ASC | DESC]:指定索引列的升序或降序排序方向,默认为ASC。
INCLUDE(column[,...n]):指定要添加到非聚集索引的叶级别的非键列。
PAD_INDEX:表示指定索引填充,默认值为OFF。ON值表示fillfactor指定的可用空间百分比应用于索引的中间级页。
FILLFACTOR=fillfactor:制定一个百分比,表示在索引创建或重新生成过程中数据库引擎应使每个索引页的叶级别达到的填充程度。fillfactor必须为介于1至100直接的整数值,默认值为0;
SORT_IN_TESTDB:指定是否在tempdb中存储临时排序结果,默认值为OFF,ON值表示在tempdb中存储用于生成索引的中间排序结果,OFF表示中间排序结果与索引存储在同一数据库中。
IGNORE_DUP_KEY:指定唯一聚集索引或唯一非聚集索引执行多行插入操作时,出现重复键值的错误响应。默认值为OFF。ON表示发出一跳警告消息,但只有违反了唯一索引的行才会失败,OFF表示发出错误消息,并回滚整个INSERT事物。
STATISRICS_NORECOMPUTE:指定是否重新计算分发统计信息,默认值为OFF。ON表示不会自动重新计算过时的统计信息,OFF表示启用统计信息自动更新功能。
DROP_EXISTING:指定删除并重新生成已命名的先前存在的聚集或非聚集索引。默认值为OFF。ON表示删除并重新生成现有索引。指定的索引名称必须与当前现有的索引相同,但可以修改索引定义,例如:可以指定不同的列,排序顺序,分区方案或索引选项。OFF表示如果指定的索引名已存在,则会显示一条错误。
ONLINE={ON | OFF}:指定在索引操作期间,基础表和关联的索引是否用于查询和数据修改操纵,默认值为OFF。
ALLOW_ROW_LOCKS:指定是否允许行锁,默认值为ON,ON表示在访问索引时允许行所。数据库引擎确定何时使用行锁。OFF表示未使用行锁。
ALLOW_PAGE_LOCKS:指定是否允许页锁,默认值为ON,ON表示在访问索引时允许页锁。数据库引擎确定何时使用页锁。OFF表示未使用页锁。
MAXDOP:指定在索引操作期间,覆盖【最大并行度】配置选项,使用MAXDOP可以限制在执行并行计划的过程中使用的处理器数量,最大数量为64.