SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
下面介绍的优化策略能提高查询的效率,但它们不一定是最优的策略,实际上“优化”一词并不是很确切,用“改进”或“改善”或许更恰当些。
1.选择运算尽可能先做
在优化策略中,这是最重要、最基本的一条。因为选择运算一般使计算结果大大变小,常常使执行时间降低几个数量级。
2.在执行连接前对关系进行适当的预处理
预处理方法主要有两种,在连接属性上建立索引和对关系进行排序,然后执行连接。前者称为索引连接方法;后者称为排序合并连接方法。
假如要对学生表和选课表进行自然连接,用索引连接方法的步骤如下。
(1)对选课表的学号建立索引。
(2)对学生表中每一个元组,由学号值通过选课表的索引查找相应的选课元组。
(3)把这些选课元组和学生元组连接起来。
这样学生表和选课表均只需扫描一遍。处理时间是两个关系大小的线形函数。
用排序合并连接方法的步骤如下。
(1)首先对学生表和选课表按连接学号排序。
(2)取学生表中的第一个学号,依次扫描选课中具有相同学号的元组,把他们连接起来。(www.chuimin.cn)
(3)当扫描到学号不相同的第1个选课元组时,返回学生表扫描下一个元组,再扫描选课表中具有相同学号的元组,把它们连接起来。
重复上述步骤直到学生表扫描完。
这样学生表和选课表也只要扫描一遍。当然,执行时间要加上对两个表的排序时间。即使这样,使用预处理方法执行连接的时间一般仍大大减少。
3.把投影运算和选择运算同时进行
如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。
4.把投影同其前或其后的双目运算结合起来
没有必要为了去掉某些字段而重复扫描一遍关系。
5.把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算
连接特别是等值连接运算要比同样的笛卡儿积节省很多的时间。
6.找出公共子表达式
如果这种重复出现的子表达式的结果不是很大的关系,并且从外存中读入这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间文件是合算的。当查询视图时,定义视图的表达式就是公共子表达式的情况。
有关数据库技术与应用教程的文章
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。查询操作需要的数据源指基本表组,表间用“,”分割。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。......
2023-11-24
求数学系学生的学号和姓名。本例中的元组选择条件是所在系等于“数学系”,结果列为学号和姓名。③使用了LⅠKE模式匹配表达式,“姓名LⅠKE”张%脚表示查询姓张的同学。表4—3课程表数据由表4-3中的数据可以得出,课程的先行关系链为:C5→C4→C3→C2→C1,并可以推出课程的间接关系链为:C5→C3→C1。......
2023-11-24
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2023-11-24
如果要使用缺省参数创建一个学籍管理数据库StuData,可以使用如下命令:Create Database StuData如果希望为数据库或事务日志指定一个或者多个特定文件,增加一个On Primary子句,列出一个或者多个文件,并可为分配这个文件的空间指定一个可选值,其命令形式如下:Create Database StuDataOn Primary,;如果为了提高性能和可恢复性,则可以使用Log On子句来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上,示例如下:Create Database StuDataOn Primary,Log On;GO......
2023-11-24
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2023-11-24
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。人们经过探索提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。工具在很大程度上依靠开发人员的经验来保证数据库模型能生成可行的设计方案和高性能的数据库。大多数的数据库设计方法都需要经历这三个步骤。根据所选择的设计方法按部就班地进行并最终获得一个实用的应用系统。......
2023-11-24
两个关系表达式E1和E2是等价的,可记作E1≡E2。常用的等价变换规则有以下几种。,Bm是E2的属性,则:10.投影与并的交换若E1和E2为可比属性,则有......
2023-11-24
根据事务的设置、用途的不同,SQL Server 2012将事务分为多种类型。用户定义事务在实际应用中,大多数的事务处理采用了用户定义的事务来处理。ROLLBACK语句是取消语句,该语句将事务的操作全部取消,即表示事务操作失效。显式事务显式事务是指每个事务均以BEGⅠN TRANSACTⅠON语句显式开始,以COMMⅠT或ROLLBACK语句显式结束。......
2023-11-24
相关推荐