一周速学SQL Server(第四天)

相关文章链接:

一周速学SQL Server(第一天)

一周速学SQL Server(第二天)​​​​​​

一周速学SQL Server(第三天)

一周速学SQL Server(第五天)

一周速学SQL Server(第六天)​​​​​​​

一、索引介绍

1.1、索引的作用

优化数据的查询及应用系统的处理速度。

1.2、索引的定义

索引类似于书的目录,可以快速定位要查找的数据,而不必扫描整张表。从而加快查询数据,提高系统性能。(索引是看不见的,但创建索引后查询大数据时,优势显而易见)

1.3、索引的缺陷

占用存储空间。

1.4、创建索引的目的

可以快速高效地查询数据,减少系统的响应时间。

1.5、索引分为聚集索引和非聚集索引

1)聚集索引:Clustered

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

2)非聚集索引:NonClustered

逻辑顺序与物理顺序相对对立。一个表可以有多个非聚集索引,也可以没有。

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

1.6、索引选择的列尽量选择小数据类型的列,提高访问速度。

二、脚本创建索引

1)如果未指定 clustered 和 nonclustered,那么默认为 nonclustered。

2)with (drop_existing = on|off),加上这个的意思是如果这个索引还在表上就drop 掉然后在create 一个新的。特别是在聚集索引上使用这个就可以不会引起非聚集索引的重建。

三、视图介绍

 3.1、视图

视图是一个虚拟表,由一个或多个表通过查询而定义的,实际不包含数据。

3.2、与表的区别

1)表是存储数据的地方

2)视图存储的是查询语句(索引视图除外,其被具体化了)

3.3、作用

1)可以简化查询

2)视图存储的是查询语句(索引视图除外,其被具体化了)

3.4、缺点

1)只是简化查询,并没有提高查询速度

2)增加了维护成本

3.5、分类

1)标准视图(常用)

存储的是查询定义,没有存储数据。

2)索引视图

被具体化了的视图,能显著提高查询性能,适合大数据量的查询,不适合经常更新基本数据集。

数据是实际存在的,删除视图里的数据,基础表里的数据也被删除。因此不要在索引视图里删除修改数据。

3)分区视图

一台或多太服务器水平连接一组成员表的分区数据。

 四、脚本创建视图

4.1、创建标准视图

语法:
        create view 视图名
        as
                T-SQL语句

使用视图就和使用表的方式一样。

4.2、创建索引视图

 语法:
        create view 视图名 with schemabinding
        as
                T-SQL语句

​​​​​​​

注意:1)*不能出现,必须写字段名

            2)表名前面要加所有者dbo

4.3、创建分区视图

注意标准视图与分区视图都不允许删除修改里面的数据会影响基础表

             索引视图删除对应的数据基础表内的数据也别删除

 五、存储过程介绍

5.1、存储过程

        是一种为了完成特定功能的一个或一组SQL语句的集合。经编译后存储在服务器端的数据库中,可以利用存储过程来加速SQL语句的执行。

        调用名称,传入参数,执行来完成特定功能。

5.2、分类

1)系统存储过程

        存在于master数据库中,其他数据库中可以直接调用并且不必在前面加上数据库名,创建数据库时,这些系统存储过程在新的数据库中自动创建。

2)自定义存储过程

        用户自己创建,为完成特定功能而创建。即可传入参数也可有返回值,表明存储过程执行是否成功。里面可有一个或多个操作。

        执行方式:execute/exec 存储过程名 参数列表(多个参数用逗号隔开)

3)优点

提高应用程序的通用性和可移植性;

可以被多次调用,而不必重新再去编写,维护人员可以随时进行修改;

可以更有效管理数据库权限;

提高执行SQL的速度(一次编译,多次调用);

减轻服务器的负担。

4)缺点

需要专门维护;

占用数据空间。

六、脚本创建存储过程

6.1、脚本创建存储过程语法

create procure/proc 存储过程名
 --参数列表
as
begin
--SQL语句集合
end

6.2、创建一个简单存储过程

6.3、创建一个带参数的存储过程

 

猜你喜欢

转载自blog.csdn.net/beiye_/article/details/127088145
今日推荐