第一章绪论
论文研究的目的及意义数据和信息在当今社会活动中越来越显示出其重要性,已经成为人类发展的一种极为重要的资源。数据库是集中、统一保存和管理某一领域内所有信息的集合,是管理信息系统的核心。目前,凡乎所有的应用查询都要和数据库打交道,通过查询数据库以获得需要的结果。随着现代数据库规模的不断扩大以致到以十亿字节(GB)计量,对能够处理如此巨大的数据信息系统的需求也随之而来,从而,找到一种高效的信息提取方法对于使研发过程更有效地进行是十分必要的[[2]。数据库应用系统的性能受多方面的限制,如操作系统、数据库管理系统以及前端开发工具等都有很大的影响。从大多数数据库应用系统的实例来看,查询操作在各种数据操作中占的比重最大。查询的效率是数据库系统的重要指标,高效的查询能够极大地提高系统的性能。因此,提高查询效率的有效手段一查询优化就显得尤为重要了[[3]0随着互联网的飞速发展,基于WEB的各类应用系统愈来愈多,良好的的系统软件能够应用十几年,甚至几十年,数据库系统的数据往往超过了干万条,可谓是海量[[}l。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为系统管理员和数据库管理员呕待解决的难题[[5]0一个系统的优劣很大程度上取决于数据的查询速度。而“查询优化”和“分页算法”两者又是决定数据库系统查询速度的关键。本文从分析影响分页查询速度的关键因素入手,结合优化器对SQL语句的优化原理和分页方法,并通过理论推倒和实验结果的分析,提出分页查询优化设计的方法,将该方法应用实际的系统当中取得了良好的效果。.
2查询优化技术概述.2.1查询优化的基本概念所谓查询优化,就是在查询执行引擎生成一个执行策略的过程中,尽量使查询的总开销和总时间达到最小[6-}]0实际系统对查询优化的具体实现不同,但一般来说,可以归纳为四个步骤:(1)将查询转换成某种内部表示,通常是语法树。(2)根据一定的等价变换规则把语法树换成优化(标准)形式。(3)选择底层的操作算法。对于语法树中的每一个操作需要根据存取路径、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。(4)生成查询计划。查询计划是由一系列内部操作组成的,这些内部操作按照一定的次序构成查询的一个执行方案,通常这样的执行方案有很多个,需要对每个执行计划计算代价,从中选择代价最小的一个[fgl0其过程如图1-1所示:图1-1查询优化的处理过程Fig.l-1QueryOptimizationProcess查询计划是用户所提交的SQL语句的集合,执行计划是经过优化处理之后所产生的语句集合。DBMS处理查询计划的过程是这样的,在做完查询语句的词法、语法检查数据库查询优化技术研究及其应用之后,将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径的优化之后,由预编译模块对语句进行处理并生成执行计划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户[[9]。在实际的数据库产品(如Oracle,S如ase等)的高版本中都是采用基于代价的优化方法,这种优化能根据从系统字典表中所得到的信息来估计不同的查询计划的代价,然后选择一个较优的执行计划。许多程序员认为查询优化是数据库管理系统(DBMS)的任务,与程序员所编写的SQL语句关系不大,这是错误的。一个好的查询执行计划往往可以使程序性能提高数十倍。
查询优化器的主要任务是控制和加快查询执行和数据传输的过程。然而,查询优化一直是个复杂的问题,理想的、全面的查询优化几乎是不可能的,许多专家和学者在这一领域曾做出过不少的研究和探讨,但总的说来,不尽人意,往往只能达到局部目标的查询优化效果,甚至有些理论并不适用[io]0虽然现在的数据库产品在查询优化方面已经做得越来越好,但由用户提交的SQL语句是系统优化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,因此用户所写语句的优劣至关重要。由于SQL语言是面向结果而不是面向过程的查询语言,所以一般支持SQL语言的大型关系型数据库都需要
参考文献
[1]Rothermel q Untch R, Chu C, et al. Prioritizing test cases for regression testing [J]. IEEETrans Software Engineering, 2001,27(10): 929-948.
[2]赵俊荣.SQL Server数据库查询优化技术应用[[J].电脑开发与应用,2006, (19):47
[3]Kalpesh Kapoor, Jonathan Bowen. Experimental evaluation of the tolerance for controlFlow test criteria[J]. Journal of Soft ware Testing Verification andReliability,2004,14(3):1-21.
[4]TOMASIC A, RASCH ID L, VALDUR IEZ P. Scaling access to distributedheterogeneous data sources with Disco[J]. IEEE TransactionsOn Knowledge and DataEngineering, 1998, 10 (5):808 -823.
[5]尹萍.SQL Server数据库性能优化[[J].计算机应用与软件,2005,10(22):51-54.
[6]谷震离.SQL Server数据库应用程序性能优化方法[J].计算机工程与设计,2006,27(15):2884-2886
[7]王振辉,昊广茂.SQL查询语句优化研究[J].计算机应用,2005,(12):207-208.
[8]常伟.SQL中查询语句的优化方法[[J].重庆工学院学报,2006, 20(5):85-87
[9]金宏伟,苏厚勤.查询表达式优化的研究和实现[[J].计算机应用与软件,2008,25(6 ):123.
[10]Liu Banding. Theory and Practice of Uncertain Programming [M]. Physica-verlag, 2002
[11]郭忠南,孟凡荣.关系数据库性能优化研究[[J].计算机工程与设计,2006, 27:4484-4486Scott W. Ambler,Mapping Objects To Relational Databases[M].AmbySoft-Inc,February1999.
[12]V Srinivasan and D.T.Chang,Object persistence in object-oriented applications,http://www. research.ibm.com/journal/sj36-l.html.Johnny Olsson,WM-data,Allan R.Lassen,Ramboll. Experiences from
[13]黄栋桥,陆鑫.基于Strut。框架的Web数据库分页技术[[J].计算机应用,2008,28(10):298-230.
[14]周政宏.Java程序设计方法与实例〔M].北京:科学出版社,2002.
[15]Surajit Chaudhur. An Overview of Query Optimization in Relational Systems[C].Proceedings of the 17th ACM SIGACT SIGMOD-SI-GART Symposium on Principles ofDatabase Systems,1998:34-43.
[16]Rothermel q Untch R,Chu C, et al. Prioritizing test cases for regression testing[J].IEEETrans Software Engineering,2001,27(10):929-948.
[17]李安,刘晓东.一个通用JSP数据库分页例程[[J].微机发展,2002,12(4):53-54.
摘要 4-6
ABSTRACT 6-7
第一章 绪论 14-24
1.1 论文研究的目的及意义 14
1.2 查询优化技术概述 14-17
1.2.1 查询优化的基本概念 14-16
1.2.2 查询优化技术 16-17
1.3 Web分页技术概述 17-20
1.3.1 Web应用的体系结构 17-18
1.3.2 Web应用的分页性能模型 18-19
1.3.3 MVC设计模式下JSP分页技术概述 19-20
1.4 查询优化和分页技术的发展前景 20-22
1.4.1 查询优化技术展望 20-21
1.4.2 分页技术的展望 21-22
1.5 论文的研究内容及组织结构 22-24
第二章 基于多连接的查询优化算法 24-34
2.1 优化器概述 24-26
2.1.1 优化器优化原理 24-26
2.2 多连接查询优化 26-27
2.2.1 多连接查询优化问题的图论描述 26
2.2.2 影响多连接查询优化的因素 26-27
2.3 组合优化问题 27-30
2.3.1 组合优化问题概述 27-29
2.3.2 多连接查询优化与TSP问题 29-30
2.4 搜索策略的算法的研究 30-34
2.4.1 穷尽搜索算法 30-31
2.4.2 启发式算法 31-32
2.4.3 局部随机搜索算法 32-33
2.4.4 全局随机搜索算法 33-34
第三章 基于JSP的分页技术 34-46
3.1 传统的分页方法 34-38
3.1.1 数据库提供的实现方法 34
3.1.2 ResultSet移动游标法 34-35
3.1.3 存储过程法 35-36
3.1.4 缓存HttpSession法 36
3.1.5 检索指定页法 36
3.1.6 使用标签库法 36-37
3.1.7 分页技术比较分析 37-38
3.2 可扩展的分页方法 38-40
3.2.1 基本思想 38-39
3.2.2 分页查询接口的描述 39-40
3.3 Web应用程序分页缓冲策略 40-46
3.3.1 上下型分页模型 41-42
3.3.2 窗口型分页模型 42-43
3.3.3 缓冲策略的制定 43-46
第四章 分页查询优化在采购招标系统中的应用 46-68
4.1 软件设计背景 46-47
4.2 系统整体框架 47-48
4.3 系统的具体设计 48-68
4.3.1 数据库概念模型设计 48-55
4.3.2 类视图设计 55-56
4.3.3 业务模型JavaBean设计 56-60
4.3.4 数据访问层设计 60-62
4.3.5 逻辑控制层设计 62-65
4.3.6 web层设计 65-68
第五章 实验 68-70
5.1 检测分页效果 68-69
5.2 检测分页查询优化效果 69-70
结束语 70-72
参考文献 72-74
致谢 74-76
研究成果及发表的学术论文 76-78
作者及导师简介 78-79