触发器、存储过程、游标、索引和视图

一、触发器

1、概念:用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均有服务器地洞激活相应的触发器,在DBMS核心层进行集中的完整性控制,类似于约束。
2、前触发器:只执行触发器指定的内容而不执行引发触发器的SQL语句。

二、存储过程

1、在开发数据库应用系统时,使用存储过程可以提高数据访问效率,降低网络流量
3、存储过程的输入参数和输出参数均有默认值,可接收多个输入参数和输出参数。
4、定义存储过程时,在一个存储过程中可以同时包含数据的增删改查操作。

三、游标

1、游标:系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。
2、游标由游标结果集游标当前行指针组成。
3、在SQL Server 2008中,要对结果集中的每行数据进行单独处理,需要用游标进行实现。
4、每个游标都有一个名字,用户可以通过游标逐一获取记录,并赋给主变量,交给主语言进一步处理。
5、在对游标进行FETCH操作后,可以使用@@FETCH__STATUS全局变量判断数据提取状态

四、索引

1、索引对数据插入的效率有一定的影响。

2、主索引:根据对象的主键建立的索引,他们决定了被索引记录的位置。
3、辅索引:可以用于任何索引目的并且可以查找多个数据文件存放的位置。

3、唯一索引:唯一索引的列的物理顺序并不和索引顺序一致

4、聚集索引:数据文件的数据记录排列顺序与索引文件排列顺序一致,一个表只能有一个聚集索引。

5、位图索引:一般在范围查询时使用。
1)对于数据重复度高值范围有限的列如果建索引建议使用位图索引。

6、哈希索引
1)利用哈希函数,计算存储地址,检索时不需要像Btree从根节点开始遍历,逐级查找。
2)在一张表的某列上需要频繁执行精确匹配查询时,可考虑在此列建立哈希索引。
3)优点: 查找效率高。
4)局限:
① 仅仅满足=,in,<=>,查询,不能范围查询(原先有序的键值经过哈希函数运算,可能不再连续)。
② 无法用于排序操作(order by)。
③ 当重复值时,效率并不比BTree高。
④ 不能利用部分索引键查询,只能使用关键字搜索一行。

7、复合索引
1)复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
2)正确选择复合索引中的主列字段,一般是选择性较好的字段
3)复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?
如果是,则可以建立复合索引;否则考虑单字段索引;
4)如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
5)如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
6)如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引
7)复合索引可以只使用复合索引中的一部分,但必须是由最左部分开始,且可以存在常量。
在这里插入图片描述
在这里插入图片描述

8、适合建立索引?
1)表的主键、外键必须有索引;
2)数据量超过300的表应该有索引;
3)经常与其他表进行连接的表,在连接字段上应该建立索引;
4)经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5)索引应该建在选择性高的字段上;
6)索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7)频繁进行数据操作的表,不要建立太多的索引;

9、删除无用的索引,避免对执行计划造成负面影响;

10、创建索引的好处
(1)通过创建索引,可以在查询的过程中,提高系统的性能
(2)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
(3)在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间
(4)加速表和表之间的连接

11、创建索引的坏处
(1)创建索引和维护索引要耗费时间,而且时间随着数据量的增加而增大
(2)索引需要占用物理空间,如果要建立聚簇索引,所需要的空间会更大
(3)在对表中的数据进行增加删除和修改时需要耗费较多的时间,因为索引也要动态地维护

五、视图

1、视图:
1)数据库只存储数据视图的定义,而不存储数据视图的内容。
2)如果在视图上创建了唯一聚集索引,则数据库保存该视图的内容
2、索引视图
1)目的:为了提高查询的效率
2)适合创建索引视图:处理大量行的联接和聚合;决策支持工作负荷。
3)不适合创建索引视图:具有大量写操作的OLTP;具有大量更新的数据库;不涉及聚合和联结的内容;GROUP BY具有高基数度的数据集合。
4)索引视图的基本表必须和视图在统一数据库中;索引视图只能引用同一数据库中用一所有者的对象。
5)数据源只能是基本表。
6)语法:CREATE UNIQUE CLUSTERED INDEX 索引名 ON 视图名

发布了25 篇原创文章 · 获赞 0 · 访问量 344

猜你喜欢

转载自blog.csdn.net/weixin_42959073/article/details/104729751