创建索引
创建索引参数解析
ASC/DESC
允许索引选择升序和降序排列顺序。默认是ASC。
INCLUDE
为覆盖索引提供更好的支持。
WHERE
用于在设置索引中包含那些行的条件。
WITH
用于告诉SQL Server 将提供一个或多个跟在后面的选项。
PAD_INDEX
该选项决定了第一次创建索引时索引的非叶级页将有多满。
FILLFACTOR
可以将FILLTACTOR设置为1-100之间的任意值。
注意:
1.如果是OLTP系统,那么需要较低的FILLFACTOR,从而在不进行也拆分的情况下执行更多的更新。
2.如果是OLAP或者其他非常稳定的(就改变而言,这是指几乎没有添加和删除操作)系统,那么需要尽可能的FILLFACTOR以减少必须从磁盘中读取的页数。
3.如果事物比例中等,且有很多基于它的报表类型查询,那么可能血压中等水平的FILLFACTOR(不太低,也不太高)。
如果没有提供值,那么SQL Server 将把也填充至差两行满为止,同时保证每页最少有一行。
IGNORE_DUP_KEY
IGNORE_DUP_KEY是一种回避系统的方法。它使得唯一约束与其应有操作方式有些不同。
DROP_EXISTING
DROP_EXISTING选项,那么具有所讨论名称的任何现有索引将在构造新索引之前被删除。
STATISTICS_NORECOMPUTE
SQL Server 视图自动化在表和索引上更新系统信息的过程。表明将负责更新系统信息,为了关闭这个选项。需要运行UPDATE STATISTICS命令。
SORT_IN_TEMPDB
只有在temp存储在与包含新索引的数据库物理上分离的驱动时,该选项才有意义。
ONLINE
如果将这个选项设置为ON,那么它将强制表对与一般的访问保持有效,并且不创建任何阻止用户使用索引和/或表的锁。
ALLOW ROW/PAGE LOCKS
这是一个比ONLINE更长期的指令,而且也是非常高级的主题,
MAXDOP
该选项用于为构建索引重写关于最大并行读的系统设置。
DATA COMPRESSION
SQL Server支持在表或索引中压缩数据。
ON
SQL Server 允许通过使用ON选项将数据和索引单独存放:索引需要的控件可以分散到其他的驱动器中。用于索引操作的I/O不会加重物理数据的负担。
创建XML索引
在何时何地使用何种索引
禁用索引:
ALTER INDEX [IX_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID] ON [Production].[TransactionHistory] DISABLE
创建索引:
CREATE NONCLUSTERED INDEX [IX2_TransactionHistory_ReferenceOrderID_ReferenceOrderLineID] ON [Production].[TransactionHistory](
[ReferenceOrderLineID] ASC,
[ReferenceOrderID] ASC
);
[ReferenceOrderLineID] ASC,
[ReferenceOrderID] ASC
);
在创建表的过程中修改自动生成索引(群集)非群集
create table MyTableKeyExample_1(
Column1 int identity primary key,
Column2 int
);
Column1 int identity primary key,
Column2 int
);
删除索引
语法:DROP INDEX <table or view name>.<index name> 或者 DROP INDEX <index name> ON <table or view name>