SQLserver学习day08 视图和索引

来源:互联网 发布:淘宝无法开店 编辑:程序博客网 时间:2024/05/22 02:25

视图

视图:一个视图是由select语句组成的查询的虚拟表,从多个表中提取数据,并以单个表的形式展现数据,视图是一个虚拟表,内容由查询语句决定,视图中并不存在数据,数据存放在视图引用的原始表中。

创建视图

SSMS创建视图

右键视图进行创建,选中要创建的表和要选择的列即可。

选择创建视图的表

这里写图片描述

选择要显示的列

这里写图片描述

查看视图的内容

这里写图片描述

SQL语句创建视图

语法:
CREATE VIEW 视图名称
AS
select语句

--视图的数据来自于一张表CREATE VIEW vw_view2AS    SELECT UserId,UserName,Phone FROM UserInfoGOSELECT * FROM vw_view2

这里写图片描述

--视图中的数据来自多张表--对视图进行ORDER BY排序时,前面必须加上TOP关键字CREATE VIEW vw_view3AS     SELECT UserInfo.UserId,UserInfo.UserName,OrderInfo.Paymoney FROM UserInfo    INNER JOIN OrderInfo ON UserInfo.UserId=OrderInfo.UserIdGOSELECT * FROM vw_view3

这里写图片描述

使用视图的优缺点和注意事项

优点:

  • 清晰的看到特定数据
  • 简化数据的操作,容易维护
  • 安全性,只能查看和修改能见到的数据
    缺点

  • 性能,操作视图比操作基本表要慢

  • 修改限制,对于某些复杂的视图,可能无法修改

注意事项

  • 创建视图时不能使用INTO关键字
  • 不能引用临时表和表变量

索引

索引:索引是一种单独的、物理的数对数据库表中一列或多列的值进行排序的一种存储结构。
索引主要目的是提高SQLserver系统的性能,加快数据的查询。

SQL索引有两种,分为聚集索引非聚集索引
聚集索引:正文内容本身就是按照一定规则排序。
非聚集索引:目录纯粹是目录,正文是正文的排序方式。

例子:查字典可以按照拼音和部首两种方法来查,拼音来查的话字都是连续的,这就是聚集索引。
按照部首来查的话,例如张和弘,两者在目录上是相邻,在实际的正文中却离得很远,这叫非聚集索引。聚集索引是物理存储上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续。

建立索引的一般原则

  • 每个表只能创建一个聚集索引
  • 每个表最多可创建249个非聚集索引
  • 在经常查询的字段上建立索引
  • 外键列可以建立索引,主键列必须建立索引
  • 重复值比较多,查询较少的列不要建立索引。

索引的创建和使用

填充因子:索引存在于索引页中,填充因子是指定索引所占的索引页的比例,如果我们指定索引因子为100,那么我们如果在第一个索引页插入数据时,然后从插入的行起后面自动顺延,会自动增加索引页。填充因子为100意味着每个索引页100%被填满,索引因子为50意味每个索引页50%被填满。
SSMS创建索引
选择数据表,选择列,右键创建索引,可以选择是否是唯一,是否是聚集。

这里写图片描述

SQL语句创建索引
语法:

CREATE [UNIQUE] [CLUSTERED/NONCLUSTERED]INDEX 索引名ON 表名(列名)[WITH FILLFACTOR=X]UNIQUE 唯一索引CLUSTERED/NONCLUSTERED 聚集索引或非聚集索引FILLFACTOR 填充因子 (0-100
--给UserInfo表中的地址列添加索引CREATE NONCLUSTEREDINDEX IX_UserIndo_AddressON UserINFO(Address)WITH FILLFACTOR=50

使用索引

--查询用户地址是河南的又哪些SELECT * FROM UserInfoWITH (INDEX=IX_UserIndo_Address)--通过with指定哪个索引进行查询WHERE Address LIKE '%河南%'

平常使用中,不用特别的指定索引,sqlserver会自动的根据索引去进行优化查询。

重新生成和组织索引

为什么需要重新生成和组织索引?
当对索引所在的数据表进行插入,删除和更新等操作时,会导致索引碎片的产生,当碎片非常多时,会降低查询性能,导致程序响应缓慢。
一般碎片比例大于30%使用重新生成索引。
小于30%大于5%使用重新组织索引。
小于5%不必处理。

查看碎片的方法。
选择数据表点开,右键索引,选择重新组织索引。

这里写图片描述

然后选择管理里的维护计划。
这里写图片描述

然后右键维护计划,选择维护计划向导

然后选择重新组织索引。一直next即可。

这里写图片描述

1 0
原创粉丝点击