索引和视图
索引
- 什么是索引?
索引是数据表中数据和相应存储位置的列表
利用索引可以提高在表或视图中查找数据的速度 - 如何创建索引
索引主要分为聚集索引(clustered)和非聚集索引(nonclustered)
优缺点:
聚集索引检索效率相对来说更高,但是对数据更新的影响较大
非聚集索引效率相对低,但是对数据的影响小
所以在定义聚集索引时使用的列越少越好。
在创建表示如果设置了主键,系统将自动为主键添加聚集索引。
每个表只能有一个聚集索引,但是最多可以有249个非聚集索引。
CREATE [ CLUSTERED | NONCLUSTERED ]
INDEX index_name
ON table_name (column_name…)
[WITH FILLFACTOR=x]--填充因子:指定0-100之间的值,表示索引页填充的百分比
--指定按索引查询
SELECT * FROM 表名 WITH(INDEX = 索引名)
WHERE 条件
低更改的表(读写比率为100:1):100%的填充因子
高更改的表(写超过读):50-70%的填充因子
读写各一半的:80-90%的填充因子
视图
- 什么是视图?
视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上
视图的准则:
- 视图名称必须遵循标识符的规则
- 允许嵌套视图。但嵌套不得超过 32 层(最多1024个字段)
- 不能将规则或 DEFAULT 定义与视图相关联
创建视图
CREATE VIEW view_name (视图名)
AS
<SELECT语句>
--指定视图查询
select * from view_name (视图名)