SQL索引
索引可以加快检索
聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续。
聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。
唯一索引
能够保证索引键中不包含重复的值,从而使表中的每一行在某种方式上具有唯一性。
视图索引
对视图而言,查询动态生成的结集开销很大,特别是涉及对大量行进行复杂处理的视图。
如果在查询中频繁地引用这类视图,可通过对视图创建唯一聚集索引来提升性能。
全文索引
全文索引是目前搜索引擎的关键技术之一。试想在1兆大小的文件中搜
索一个词,可能需要几秒,在更大的文件中搜索开销会更大。为加快此类检索速度,出现了全文索引技术,也称倒排文档技术。
创建索引语法
CREATE [UNIQUE] [CLUSTERED |NONCLUSTERED] INDEX 索引名
ON 表名/视图名 (column_name [ASC |DESC] [,…n])
[WITH<index_option> [,…n] ]
[ON {filegroup_name | “default” } ]
修改索引语法
ALTER INDEX { index_name | ALL }ON table_or_view_name
{ REBUILD[ [PARTITION = ALL]
[ WITH ( <rebuild_index_option> [ ,...n ] ) ]| [ PARTITION = partition_number
[ WITH ( <single_partition_rebuild_index_option>
[ ,...n ] )
] ] ]| DISABLE| REORGANIZE
[ PARTITION = partition_number ]
[ WITH ( LOB_COMPACTION = { ON | OFF } ) ]
| SET ( <set_index_option> [ ,...n ] )
}[ ; ]
(1)REBUILD:删除索引并且重新生成索引。
(2)PARTITION:指定只重新生成或重新组
织索引的一个分区。
(3)DISABLE:将索引标记为禁用,从而不
能由数据库引擎使用。
(4)REORGANIZE:重新组织索引。
删除索引语法
DROP INDEX <table or view name>.<indexname>
或者
DROP INDEX <index name> ON <table orview name>
显示索引信息
EXEC Sp_helpindex 表名
修改索引名称
EXEC Sp_rename ''数据表名.原索引名', '新索引名'