索引和视图

索引介绍

1.索引的作用:数据的查询 处理速度 ---应用系统成败的标准。  最普遍---优化方式

2.索引是什么?一本书  目录  查找  

索引---目录,快速的定位我们要查找的数据,而不必去扫描整个表。
    ---从而可以加快我们查询的速度。---提高系统的性能。

3.索引有缺点:占用存储空间,索引并不是越多越好,索引并不总是能提高系统性能的。


4.索引的目的:可以更加快速高效地查询数据,减少系统的响应时间。

索引分为 聚集索引  非聚集索引

           主键      唯一索引


聚集索引:Clustered  逻辑顺序与物理顺序是一致的   最多只能有一个,可以没有

非聚集索引:NonClustered  逻辑顺序与物理顺序是并不一致的。  可以有多个,也可以没有

非聚集索引比聚集索引  效率低。

如果需要多个列上建立索引,这些列建立组合索引。
列:小数据类型的,  访问速度特别快。

索引是看不见的,但是如果你创建了索引,在查询大数据的时候,它的优势就是显而易见的。

创建索引

--默认非聚集
--聚集  主键索引
create clustered index PK_UserInfos
on UserInfos(UserId)
with
(
  drop_existing=on --先删除原来,create一个新的 off 不删除原有的,提示一个错误,索引已存在
)
--唯一非聚集索引
create unique nonclustered index uq_UserInfos
on UserInfos(UserName)
with
(
  drop_existing=on,
   pad_index=on, --当设置fillfactor才有用
   fillfactor=50,--指定创建索引时,每个索引页的数据占索引页大小的百分比
   ignore_dup_key=on
)

--读写比:100:1    100
-- 读小于写: 50--70
--读写各一半:80--90   

--复合索引:多个列上建立的索引
create  nonclustered index Index_UserInfos
on UserInfos(UserName,DeptId)
with
(
   drop_existing=on
)  

视图介绍

视图:虚拟表  由一个或多个表通过查询而定义的  将查询定义保存起来,实际不包括数据。



与表的区别:表存储数据的地方,视图存储的是查询语句(索引视图除外,具体化了)



作用:简化查询  增加数据的保密性  安全性上得到保证



缺点:只是简化查询,并不提高查询速度  增加了维护成本 




分类:标准视图 :存储查询定义  没有存储数据。 
      索引视图(被具体化了的,创建了索引,显著提高查询性能,聚合了很多行的查询,不太适合经常更新基本数据集)  
      分区视图:一台或多台服务器间水平连接一组成员表的分区数据。

创建视图

--标准视图
alter view vUserInfosNew
as
--T-SQL 查询语句
select u.*,d.DeptName
from UserInfos u
inner join DeptInfos d
on d.DeptId=u.DeptId

go

--使用视图  就和使用表一样
select * from vUserInfosNew
where DeptId>1
order by UserId desc

--索引视图  适合于聚合多行数据的情况下
--数据是实际存在,删除视图里的数据,基础表里的数据也被删除 
--索引视图里不要去删除修改数据

-- * 必须写字段名,表名前面要所有者 dbo
create view vUserInfos_Index with schemabinding
as
select UserId,UserName,Age from dbo.UserInfos
go

--使用
select * from vUserInfos_Index

--索引视图创建唯一聚集索引
create unique clustered index uq_vUserInfos_Index
on vUserInfos_Index(UserId)
go

--标准视图与分区视图 都不允许删除修改里面的数据,会影响基础表
--索引视图 删除了,对应的基础表数据也被删除了,慎用 。
--分区视图 
create view vTestInfos
as
select * from Test
union all
select * from Test3
go

--使用视图
select * from vTestInfos

学习笔记。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值