1.索引
创建:
CREATE INDEX 索引名 ON TABLE(列名1,列名2,...)
每个索引必须有唯一名字,在括号内列出索引包含的列(可以为多列)
扩展形式:
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED ] INDEX 索引名
ON {TABLE | VIEW } (列1 [ASC | DESC] ...)
UNIQUE:唯一性索引,不允许表中不同行在索引列上取相同值
CLUSTERED | NONCLUSTERED:聚集和非聚集索引。缺省时,创建为非聚集索引
ASC | DESC:索引表中索引值的排序次序
eg: CREATE INDEX name_index ON StudentInfo(Sname)
使用:
SELECT column1, column2 ... FROM TABLE
WITH (INDEX(index_name))
WHERE condition
删除:
DROP INDEX index_name
SQL Sever 中,删除索引时一定要指明索引所在的表的名字
DROP INDEX table_name.index_name
使用索引的注意点:
1.对于小的数据表,使用索引不能够提高检索效率,因此不需要创建
2.当用户要检索的字段有很多数值或很多空值,为该字段创建索引,会大大提高效率
3.当用户查询表中的数据时,如果查询结果包含的数据行较少,一般少于数据总数的25%,使用索引会提高效率
4.索引列在where子句中应频繁使用
5.建表后,应先装数据,再建索引,否则,每次插入数据就要维护一次索引
6.索引提高了检索速度,但也降低了数据更新速度
7.尽量把表和它的索引放在不同磁盘上,会提高查询速度
视图
视图是从一个或多个表中导出的表,不是真实存在,而是一张虚表。通过视图看到的数据只是存放在基本表中的数据。当我们对视图中的数据进行修改时,相应的基本表的数据也会发生变化;同样,基本表的变化也会反映到视图中。
视图的优点:
1.简化操作。视图本身是一个复杂查询的结果集,因此每一次执行相同查询时,不必重写语句,而是对视图操作即可
2.定制数据。视图能够让不同的用户以不同的方式看到不同或相同的数据
3.合并分隔数据
4.安全性。通过视图,用户只能查看和修改他们所能看见的数据。其他数据库或者表既不可见也不能访问。视图所引用的表的访问权限与视图权限的设置互不影响
缺点:
1.性能。由于视图是虚拟表,每次查询还要执行定义视图的查询,影响了查询效率
2.更新限制。不是所有视图都是可更新的
网友评论