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

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

1、索引

1-1、索引的概述

我们把一个表中的一列或者多列和列中元素所在表中记录的物理地址组合成一个新的表。这个表的记录大致为列的内容和该列所在记录的物理地址。

1-2、索引的优缺点

优点:大大加快了对源表的执行速度,我们对索引表的检索就可以实现对源表的检索。到底快在哪里?举例说明:我们通过T-SQL语句查询源表中的一条记录,在没有索引表的时候,计算机首先把整个源表从外存加载到内存,然后再一一匹配,从外存加载到内存耗时是非常的大;在有索引的时候,计算机首先加载索引表,然后匹配,找到后,取出它的物理地址,此时,再从外存中加载大表中的该记录,这种方法,人看的时候麻烦,但计算机可能就不那么认为(具体还要看源表记录的长度和数量)

缺点:索引表需要占物理空间;当对源表操作时,也要维护索引表,是维护的任务加重了。

2、视图

2-1、视图的概述

视图由一张表或多张表的列数据组成的一张虚拟表,所谓虚拟表,就是该整体表在硬盘上不存在,其实,我们创建一个视图,实际上是创建了一个经过包装了的Select语句,在这里我们称为A,创建视图,就是我们往硬盘存放了A,我们调用该视图的时候,系统就会自动执行一遍A,然后,我们看见的就是一张表了。(这张表数据的改变时,基表变不变,那要看具体情况了,可以说明的是,我们可以通过虚拟表达到改变基表数据的目的)

2-2、视图的优缺点

优点:视图可以限制我们对表中一些数据的访问,增加了数据的安全性;减少了重复写入T-SQL语句。

缺点:复杂的视图一般不能修改内容;能修改的视图,也需要经过变化使该操作应用到基表中。

3、游标

3-1、游标的概述

数据库管理系统为了对数据的管理更加高效,采用的是整块数据进行管理操作,这个管理方式对于数据库管理系统来说是非常的好的,但是,这种管理方式对于应用程序来说不好,因为我应用程序对于操作管理的数据是很少的,而且针对性也强,根据应用程序的这些特点,我们为了使应用程序更加的高效,我们创建了游标,游标就是为了完成对数据集中的数据经行更小单位的操作,也就是对记录集中的数据的操作是按一条一条记录经行的,所以呢,游标是由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。游标是由管理多数据到少数据,操作不确定数据到确定性数据,对数据顶对性弱到针对性强的一种产物。

3-2、游标的优缺点

优点:应用程序可以应用游标对数据集经行指定行的操作。

缺点:使用不当会使运行效率更低。

4、存储过程

4-1、存储过程的概述

存储过程就是一个SQL语句集,当然,这个语句集可以完成特定的功能,存储过程建立后,就先会经过编译,然后,存放在硬盘上。

4-2、存储过程的优缺点

优点:一次编译,多次执行,使用户不用多次的书写相同的SQL语句了,同时这些SQL语句也不用一直先编译在执行了,节省了时间。

缺点:简单应用换可以,复杂的时候应用,就是变的复杂。

5、触发器

5-1、触发器的概述

触发器就是特殊的存储过程,特殊在,触发器不需要通过人为(例:在程序中调用)的操作来启动它,触发器的启动是由事件(删除、更新等)的执行来自动启动的。

5-2、触发器的优缺点

优点:是数据的安全性更强,例:通过触发器可以取消删除数据的操作。
缺点:维护数据的时候变得有些复杂。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验四 存储过程触发器索引 一、实验目的 1.熟悉大型数据库实验环境,以MS SQL SERVER为例; 2.掌握视图; 3.掌握存储过程触发器; 4.掌握MS SQL SERVER的导入和导出; 5.掌握MS SQL SERVER的索引。 二、实验内容 (1)使用“实验一”中的数据库“abc”,创建一个视图,生产厂家为“北京”且价格低于北京生产的产品的平均价格,输出产品的名称、价格和生产厂家。 (2)使用“实验一”中的数据库“abc”,创建一个带有输入参数的存储过程proc_abc,查询指定职工的销售记录,用户输入职工编号,存储过程返回职工名称、产品名称、销售日期、销售数量,假如执行存储过程时所提供的“职工编号”不存在,存储过程应给予一定的提示。 (3)使用“实验一”中的数据库“abc”,练习使用游标, 写出按如下报表形式显示结果的SQL语句,该报表查询每年每种产品总销售金额,(总销售金额=价格*销量),报表显示格式如下所示: 年 产品号 产品名 销售总量 总销售金额(万元) 2001年 2 AAA 590 3.2 2001年 5 BBB 644 23.3 2002年 1 CCC 32 0.2 (4)使用“实验一”中的数据库“abc”,练习使用触发器,在销售表上创建触发器tr_updateprice,每次新增销售记录时,自动更新产品表的单价,更新方法是:每增加一笔销售记录,就将该产品的单价减去1块钱。 (5)将100万行网络连接监控数据Netflow导入数据库,创建多个索引,观察创建索引对数据库文件大小的影响;并设计不同的查询语句来观察索引对查询效率的影响;可以尝试将100万行记录扩展为1000万行,然后再做索引和查询的实验?文件见附件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值