转自:https://www.2cto.com/database/201208/146199.html
索引、视图、游标、存储过程和触发器的理解
1、索引
1-1、索引的概述
我们把一个表中的一列或者多列和列中元素所在表中记录的物理地址组合成一个新的表。这个表的记录大致为列的内容和该列所在记录的物理地址。
1-2、索引的优缺点
优点:大大加快了对源表的执行速度,我们对索引表的检索就可以实现对源表的检索。到底快在哪里?举例说明:我们通过T-SQL语句查询源表中的一条记录,在没有索引表的时候,计算机首先把整个源表从外存加载到内存,然后再一一匹配,从外存加载到内存耗时是非常的大;在有索引的时候,计算机首先加载索引表,然后匹配,找到后,取出它的物理地址,此时,再从外存中加载大表中的该记录,这种方法,人看的时候麻烦,但计算机可能就不那么认为(具体还要看源表记录的长度和数量)
缺点:索引表需要占物理空间;当对源表操作时,也要维护索引表,是维护的任务加重了。
2、视图
2-1、视图的概述
视图由一张表或多张表的列数据组成的一张虚拟表,所谓虚拟表,就是该整体表在硬盘上不存在,其实,我们创建一个视图,实际上是创建了一个经过包装了的Select语句,在这里我们称为A,创建视图,就是我们往硬盘存放了A,我们调用该视图的时候,系统就会自动执行一遍A,然后,我们看见的就是一张表了。(这张表数据的改变时,基表变不变,那要看具体情况了,可以说明的是,我们可以通过虚拟表达到改变基表数据的目的)
2-2、视图的优缺点
优点:视图可以限制我们对表中一些数据的访问,增加了数据的安全性;减少了重复写入T-SQL语句。
缺点:复杂的视图一般不能修改内容;能修改的视图,也需要经过变化使该操作应用到基表中。
www.2cto.com
3、游标
3-1、游标的概述
数据库管理系统为了对数据的管理更加高效,采用的是整块数据进行管理操作,这个管理方式对于数据库管理系统来说是非常的好的,但是,这种管理方式对于应用程序来说不好,因为我应用程序对于操作管理的数据是很少的,而且针对性也强,根据应用程序的这些特点,我们为了使应用程序更加的高效,我们创建了游标,游标就是为了完成对数据集中的数据经行更小单位的操作,也就是对记录集中的数据的操作是按一条一条记录经行的,所以呢,游标是由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。游标是由管理多数据到少数据,操作不确定数据到确定性数据,对数据顶对性弱到针对性强的一种产物。
3-2、游标的优缺点
优点:应用程序可以应用游标对数据集经行指定行的操作。
缺点:使用不当会使运行效率更低。
4、存储过程
4-1、存储过程的概述
存储过程就是一个SQL语句集,当然,这个语句集可以完成特定的功能,存储过程建立后,就先会经过编译,然后,存放在硬盘上。
4-2、存储过程的优缺点 www.2cto.com
优点:一次编译,多次执行,使用户不用多次的书写相同的SQL语句了,同时这些SQL语句也不用一直先编译在执行了,节省了时间。
缺点:简单应用换可以,复杂的时候应用,就是变的复杂。
5、触发器
5-1、触发器的概述
触发器就是特殊的存储过程,特殊在,触发器不需要通过人为(例:在程序中调用)的操作来启动它,触发器的启动是由事件(删除、更新等)的执行来自动启动的。
5-2、触发器的优缺点
优点:是数据的安全性更强,例:通过触发器可以取消删除数据的操作。
缺点:维护数据的时候变得有些复杂。