《高校研究生教学管理平台研究生培养的设计与优化大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《高校研究生教学管理平台研究生培养的设计与优化大学本科毕业论文.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要随着互联网的高速发展,人们生活水平的提高,计算机已经逐渐深入到社会的各个领域中,信息化”,“自动化”也逐渐成为了21世纪企业发展的代名词。快捷的上网方式已经成为人们的追求,因此,像以前落后的上网方式已经不可取了。针对人们的需求,提高上网速度,简化代码,优化页面的开发势在必行。本次设计针对高校研究生教学管理平台的优化充分考虑了研究生教学管理的特点,符合高校教学管理的需求,界面美观,功能齐全,并保证上网的速率。高标准、高质量的管理才能满足人们的需求。本课题主要介绍了对高校研究生教学管理平台的优化,这次的课程设计主要分界面优化,数据库优化以及代码优化三部分。本设计是以JAVA作为开发语言,TO
2、MCAT作为后台服务器,并使用了Sql Server 2008作为后台数据库。此次优化还结合了JSP、Java、DreamWeaver、CSS据库等软件的使用。通过对这三方面优化的理解对此教学管理平台进行进一步的完善,使此教学管理平台更符合广大师生的意愿,更方便地为师生服务。关键词: 界面优化,数据库优化,代码优化AbstractWith the rapid development of Internet, peoples living standards improve, the computer has gradually penetrated into all areas of soci
3、ety, and information technology , automation has gradually become synonymous with business development in the 21st century. Quickest way Internet has become the peoples pursuit, therefore, as before, the way the Internet has undesirable behind it. against the peoples needs and improve Internet speed
4、, simplify the code, optimize the development imperative page.The design for the optimization of Graduate teaching management platform fully consider the characteristics of the postgraduate teaching management, teaching management in line with demand, beautiful interface, complete functions, and to
5、ensure access rate. High standards and quality management in order to meet peoples needs.This paper focuses on the optimization of university graduate teaching management platform, this course is primarily designed interface optimization, database optimization, and code optimization of three parts.
6、The design is based on JAVA as a development language, TOMCAT as a background server and use the Sql Server 2008 as the back-end database. The optimization also incorporates the use of JSP, Java, DreamWeaver, CSS databases and other software. By understanding these three aspects of this teaching opt
7、imized management platform for further improvement of teaching management platform makes this more in line with the wishes of the majority of teachers and students, more convenient for students and teachers.Keywords: optimization of interface, database optimization, the code optimization 目 录1绪 论 1 1
8、.1 系统优化的意义1 1.2 系统优化的硬件要求和软件要求1 1.2.1 硬件要求1 1.2.2 软件要求12技术概述2 2.1 数据库介绍2 2.2 设计中JavaScript技术2 2.3 级联样式表CSS33界面优化4 3.1 界面优化的意义4 3.2 界面优化的技术介绍4 3.3 对研究生教学管理平台的界面优化53.3.1 登录成功的界面的优化63.3.2 提前答辩申请界面的优化73.3.3 提前申请论文答辩-已提交提前申请论文界面的优化84数据库优化94.1 数据库优化的意义94.2 数据库优化94.2.1 提前答辩的E/R图104.2.2 提前答辩中详细的表结构114.2.3 数
9、据库表结构的优化124.2.4 基于索引的优化124.2.5 优化SQL语句的优化145代码优化155.1 代码优化的意义155.2 代码优化的实例155.2.1 循环不变量迁移155.2.2 递归算法16总结17致谢18参考文献191 绪论1.1 系统优化的意义IT技术的飞速发展使教学的管理也进入了一个暂新的阶段,人类进入了信息高速发展的时代,信息技术成为一门新兴产业1。作为计算机应用的一部分,使用计算机对教学平台进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。教育信息化理念的出台,使教务管理系统已开始设计并应用于教学管理中
10、。高校学生数量急剧增加,有关高校学生各种信息量也成倍增长,高校学生信息的统计跟踪工作量与工作难度亦在增长2。使用计算机对高校学生信息进行统一管理,具有手工管理无法比拟的优点。使用计算机进行管理具有查找方便、数据处理快捷、成本低等优点。这些优点能够极大地提高高校学生信息管理的效率,也是高校的科学化、正规化管理的重要条件。在传统模式下简单利用计算机对高校学生信息进行统计跟踪,存在着较多的缺点,这给高校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断发展,计算机科学日渐成熟,网络系统的优化变得越来越重要,对高校研究生教学管理系统进行优化,使高校师生更方便地使用
11、此系统,使繁琐的工作变得简单有效,来实现高校学生的现代化管理3。1.2 系统优化的硬件要求和软件要求1.2.1 硬件要求 开发环境硬件:P4以上计算机CPU:Inter(R) Core(TM)2 Duo CPU 2.10GHzHDD:300GRAM: 256M内存以上1.2.2 软件要求操作系统:Windows XP/Windows 7。数据库:SQL Server 2008。服务器:Tomcat6.0。开发工具: Dreamweaver CS5。浏览器:IE9.0。2 技术概述2.1 数据库介绍 SQL Server 2008 在Microsoft的数据平台上发布,可以组织管理任何数据。可以
12、将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。SQL Server 2008 允许使用 Microsoft .NET 和Visual Studio开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过 Microsoft BizTalk Server 进行的业务流程中使用数据。信息工作人员可以通过日常使用的工具直接访问数据4。这个平台有以下特点: 可信任的使得公司可以以很高的安全性、可靠性和可扩展性来运行
13、他们最关键任务的应用程序。 高效的使得公司可以降低开发和管理他们的数据基础设施的时间和成本。 智能的提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息5。2.2 设计中JavaScript技术Javascript是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascrip
14、t,提供了数据验证的基本功能。基本信息编辑JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML(标准通用标记语言的子集)网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript是Sun公司(已被oracle收购)的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三
15、个部分:ECMAScript,文档对象模型,浏览器对象模型。Netscape公司在最初将其脚本语言命名为LiveScript。Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时网景为了营销4考虑与Sun公司达成协议的结果。为了取得技术优势,微软推出了JScript脚本语言。Ecma国际(前身为欧洲计算机制造商协会)创建了ECM
16、A-262标准(ECMAScript)。现两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非是作为给程序人员的编程语言来推广和宣传,但是JavaScript具有非常丰富的特性。JavaScript是一种解释性的,基于对象的脚本语言(an interpreted,object-based scripting language)。HTML网页在互动性方面能力较弱,例如下拉菜单,就是用户点击某一菜单项时,自动会出现该菜单项的所有子菜单,用纯HTML网页无法实现;又如验证HTML表单(Form)提交信息的有效性,用户名不能为空,密码不能少于4位,邮政编码只能
17、是数字之类,用纯HTML网页也无法实现。要实现这些功能,就需要用到JavaScript6。JavaScript主要是基于客户端运行的,用户点击带有JavaScript的网页,网页里的JavaScript就传到浏览器,由浏览器对此作处理。前面提到的下拉菜单、验证表单有效性等大量互动性功能,都是在客户端完成的,不需要和Web Server发生任何数据交换,因此,不会增加Web Server的负担7。2.3 级联样式表CSS级联式样式表 (CSS) 包含应用于 HTML 文档中元素的样式定义。CSS 样式定义元素的显示方式以及在页中放置元素的位置。可以创建一个通用规则,只要 Web 浏览器遇到一个元
18、素实例,或是一个分配给某个样式 CLASS 的元素,该规则就立刻应用属性,而不是将属性逐个分配给页中的每个元素。CSS 样式可以通过内联方式放置在单个 HTML 元素内,也可以在 Web 页 HEAD 部分的 块内加以分组,或从单独的 CSS 样式表文件中导入。同一个外部样式表文件可链接到很多 Web 页,从而使整个 Web 站点具有统一的外观。若要在 HTML 设计器中使用 CSS 样式规则,必须将 HTML 文档的 targetSchema 属性设置为支持 HTML 4.0 或更高版本的 Web 浏览器。仅支持 HTML 3.2 或更低版本的旧版 Web 浏览器将只是忽略 CSS 样式。如
19、果将 targetSchema 属性设置为旧版的 Web 浏览器,则集成开发环境 (IDE) 将隐藏那些仅在更高版本浏览器上可用的 CSS 选项和属性。如果将 targetSchema 属性设置为不支持 HTML 4.0 的浏览器,则 CSS 样式规则将是为 HTML 元素指定所需外观和位置的首选方法。CSS是一种用来表现HTML或XML等文件样式的计算机语言8。CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并
20、能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。3 界面优化3.1 界面优化的意义随着人类社会的不断发展,科学技术也日新月异地进步。新的网页网页浏览方式的出现,以其特殊的方式极大程度地改变着我们的生活方式。网上聊天、网上购物、网上冲浪已不再是什么新鲜事,而成为了现代人日常生活中不可或缺的一部分。网络正在逐步改变全球的通讯方式。网页设计随着网络的发展而逐步受到人们的重视,它本身以网络为载体,把各种信息以最快捷、最方便的方式传达给人们。网页设计是将技术性与艺术性融为一体的创造性活动。网页设计是以功能性
21、为第一指导原则,以技术因素为主要考虑对象,以完成或实现必要的功能为目标。人们使用网络的频繁而变得非常的重要,界面优化便显得越来越重要。高校研究生而管理平台是针对研究生学院进行一系列的设计,为方便高校师生的查询和登录,因此对界面进行优化。网页设计主要针对整个页面的排版,观察整体布局,规划信息布局,使页面看起来很美观,提高用户浏览网页的速度。随着网络的飞速发展,网页界面的设计也日益成为国内外学者关注的议题。网页设计的进行大致可以分为两部分,一为网页界面呈现方式的设计,另一则为浏览路径的分析。从网络的发展来看,网页设计从无到有,从低级到高级,是基于技术的原因而受到客观的限制的,因为受传输带宽的限制,
22、最早的网页是纯字母和数字的,没有图片和声音更别说是动画了,只能将占用空间很小的数字和字母来进行传输9。从用户的角度来看待网页设计,针对高校研究生教学管理平台的界面优化,本课题应该从研究生以及教师本身出发,使界面朴素而不单调,能够使他们使用起来方便快捷,排除他们使用中的问题。在网络特殊环境下,尽量以最高效率的方式将用户所要想得到的信息传送给他就是最好的,所以要去掉所有的冗余的东西,从而达到基本的目的。一个网站强调的就是一个整体,只有围绕一个统一的目标所做的设计才是成功的。布局有条理,充分利用美的形式,是网页富有可欣赏性,提高档次。发挥网络的优势,是每个使用者都参与到其中来,这样的设计才能算成功的
23、设计10。3.2 界面优化的技术介绍MacromediaDreamweaver CS5是建立Web站点和应用程序的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建基于标准的网站和应用程序的优美界面。从对基于CSS的设计的领先支持到手工编码功能,Dreamweaver提供了专业人员在一个集成、高效的环境中所需的工具。开发人员可以使用Dreamweaver及所选择的服务器技术来创建功能强大的Internet应用程序,从而使用户能连接到数据库、Web服务和旧式系统。Dreamweaver具有灵活编写网页的特点,不但将世界
24、一流水平的“设计”和“代码”编辑器合二为一,而且在设计窗口中还精化了源代码,能帮助用户按工作需要定制自己的用户界面。Dreamweaver是一种所见即所得的HTML编辑器,可实现页面元素的插入和生成。可视化编辑环境大量减少了代码的编写,同时亦保证了其专业性和兼容性,并且可以对内部的HTML编辑器和任何第三方的HTML编辑器进行实时的访问。无论用户习惯手工输入HTML(标准通用标记语言下的一个应用)源代码还是使用可视化的编辑界面,Dreamweaver都能提供便捷的方式使得用户设计网页和管理网站变得更容易。当保存时系统自动检查当前文档的跨浏览器有效性,可以指定何种浏览器为测试用浏览器,同时系统自
25、动检验以确定页面有没有目标浏览器不支持的tags或CSS结构。动态跨浏览器有效性检查功能可以自动核对tags和CSS规则是否适应目前的主浏览器。Dreamweaver CS5继承了Fireworks、Flash和Shockwave的集成特性,可以在这些Web创作工具之间自由地切换,轻松地创建美观实用的网页。可以方便地加入Java、Flash、Shockwave、ActiveX以及其他媒体。Dreamweaver具有强大的多媒体处理功能,在设计DHTML和CSS方面表现得极为出色,它利用JavaScript和DHTML语言代码轻松地实现网页元素的动作和交互操作。Dreamweaver还提供行为和
26、时间线两种控件来产生交互式响应和进行动画处理。功能更多的CSS支持CSS可视化设计、CSS检查工具。开发人员可以使用Dreamweaver 及所选择的服务器技术来创建功能强大的Internet 应用程序,从而使用户能连接到数据库、Web 服务和旧式系统。开发环境支持HTML、ASP、ASP.NET、JSP等,提供众多功能强大的可视化设计工具、应用开发环境以及代码编辑支持。主要用于素材整理、排版以及后台程序的交互。3.3 对研究生教学管理平台的界面优化DreamWeaver, 自制动态HTML动画的网页.DreamWeaver是一个很酷的网页设计软件,它包括可视化编辑、HTML代码编辑的软件包,
27、这项技术使得网页在DreamWeaver和HTML代码编辑器之间进行自由转换,HTML句法及结构不变。本次课题界面的优化还用到了IFrame框架,IFrame其实就是内嵌的框架,是一个网页来引用外部HTML的,他们之间的关系是父子的关系。IFrame不需要另外的页面来定义框架结构,灵活性高3.3.1 登录成功的界面的优化 登陆成功后的界面非常简单,只是将其内容简单的显示出来,看起来很凌乱,没有进行分类,如下图所示。图3-1优化之前登录成功的显示界面通过工具对界面进行优化,让页面内容以多级菜单的形式显示出来,使优化之后的界面看起来更清晰,页面更美观,如下图所示。图3-2优化之后登录成功的显示界面
28、3.3.2 提前答辩申请界面的优化 提前申请答辩的界面优化之前很简单,界面如下图所示。图3-3优化之前提前答辩申请的显示界面通过优化,将信息内容紧凑的罗列出来,并使用下拉菜单进行选择,使界面看起来更加清晰,使用起来比较方便,优化之后的界面如下图所示。图3-4优化之后提前答辩申请的显示界面3.3.3 提前申请论文答辩-已提交提前申请论文界面的优化优化之前的界面如下图所示图3-5优化之前已提交申请论文的显示界面使用单选按钮进行选择优化,使界面看起来更有调理,界面如下图所示。图3-6优化之后已提交申请论文的显示界面4 数据库优化4.1 数据库优化的意义随着计算机技术的日益成熟,各种应用软件已经涉及到
29、各行各业,数据管理已经占据一席地位。一个数据库系统的生命周期可以分成:设计、开发和成品三个阶段。在设计阶段进行数据库性能优化的成本最低,收益最大。在成品阶段进行数据库性能优化的成本最高,收益最小。数据库的优化通常可以通过对网络、硬件、操作系统、数据库参数和应用程序的优化来进行。最常见的优化手段就是对硬件的升级。根据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来只占数据库系统性能提升的40%左右,其余的60%系统性能提升来自对应用程序的优化。许多优化专家认为,对应用程序的优化可以得到80%的系统性能的提升。数据库优化的意义:(1)完善地管理各种数据库对象,具有强大的
30、数据组织、用户管理、安全检查等功能。 (2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。 (3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。 (4)作为Office套件的一部分,可以与Office集成,实现无缝连接。 (5)能够利用Web检索和发布数据,实现与Internet的连接。 Acces
31、s主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业和组织生存和发展的重要条件。数据库系统作为管理信息系统的核心,各种基于数据库的联机事务处理以及联机分析处理正慢慢的转变成为计算机应用的最为重要的部分,根据以往大量的应用实例来看,在数据库的各种操作中,查询操作所占的比重最大,而在查询操作中基于SELECT语句在SQL语句中又是代价最大的语句。如果在使用中采用了优秀的查询策略,往往可以降低查询的时间,提高查询的效率,由此可见查询优化在数据库中的重要性。在程序中加载数据
32、库,采用优秀的查询策略,可以降低查询的时间,也提高了查询的效率,既方便程序更好的运行,也便于用户使用。由此可见查询优化在数据库中的重要性。4.2 数据库优化4.2.1 提前答辩的E/R图专业ID专业名称所属学院学生ID学生姓名研究生专业学院导师属于属于审核小组属于审核提前答辩提交所学专业所属学院学院ID学院名称论文名称开题时间结束时间应用学年考核结果论文名称导师ID导师姓名导师ID针对现有的高校研究生教学管理平台,对研究生学院进行优化,在数据库中添加外键约束,使实体之间进行关联,方便数据被访问,表优化后的E/R图分析如下:课题来源研究方向审核人数是否是专家 图4-1 提前答辩的E/R图4.2.
33、2 提前答辩中详细的表结构针对以前的数据库表格,现增添了外键约束,如提前答辩表中的论文名称字段作为研究生表的外键,方便数据进行检索,使实体保持关联,数据库表如下:表4-1研究生表 字段名称数据类型长度学生IDvarchar20学生姓名varchar12论文名称varchar50所学专业varchar20所属学院varchar30表4-2专业表字段名称数据类型长度专业IDchar8专业名称varchar50所属学院varchar20 表4-3提前答辩表字段名称数据类型长度论文名称char3开题时间varchar20结束时间varchar20应用学年varchar20考核结果varchar30研究
34、方向varchar12课题来源varchar20表4-4审核小组表字段名称数据类型长度论文名称varchar50导师IDchar8审核人数int20 表4-5导师表字段名称数据类型长度导师IDchar8导师姓名varchar20是否是专家char14.2.3数据库表结构的优化在数据库的基本表设计中,表的主键、外键在数据库中占有非常重要的地位,它们与系统的运行性能密切相关。主键(Primary Key)也称为主码或主关键字,是表中用于唯一确定一个元祖的一个属性或最小的属性集合。一个表只有一个主键。主键应该有固定值(不能为Null或缺省值,要有相对稳定性),不含代码信息,容易被易访问。把常用的列作
35、为主键才有意义。外键(Foreign Key)一般出现在联系所对应的关系中,用于表示两个或是多个实体之间的关联关系。外键的作用是建立关系型数据库中表之间的关系,主键只能从独立的实体迁移到非独立的实体,成为后者的一个属性,被称为外键。数据库约束是为了保证数据的完整性而实现的一套机制。比如,对于主键约束唯一且不为空。检查约束范围以及格式限制。 4.2.4 基于索引的优化数据库索引好比是一本书后的索引,能加快数据库的查询速度。例如这样一个查询:SELECT * FROM TABLE1 WHERE ID=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID
36、这一列上建立的索引),直接在索引里面找44,就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通
37、过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。数据库的优化方法多种多样,不同的方法对提高数据库查询效率也不相同。索引作为数据库中的重要数据结构,它的根本目的就是为了提高查询的效率。而优化查询的重要方法就是建立索引,建立适合关系数据库系统的索引,这样就可以避免表扫描,并减少了因为查询而造成的输入输出开销,有效提高数据库数据的查询速度,优化了数据库性能。然而在创建索引时也增加了系统时间和空间的开销。所以创建索引时应该与实际查询需求相结合,这样才能实现真正的优化查询。索引的使用在一些大型数据库系统中会经常使用到,这样可以有效的提高数据库性能,使数据库的访问速度得到提高。但索引的使用
38、要恰倒好处,所以我们在使用索引时应遵守使用原则:建立索引可以提高数据库的查询速度,但索引过多,不但不能实现优化查询,反而会影响到数据库的整体性能。索引作为数据库中实际存在的对象,每个索引都要占用一定的物理空间。所以对于索引的建立要考虑到物理空间容量,以及所建立索引的必要性和实用性。索引建立之后,还要确保其得到了真正的使用,发挥了其应有的作用。首先,可以通过SQL语句查询来确定所建立的索引是否得到了使用,找出没有使用到的索引。分析索引建立但没有使用的原因,使其真正发挥作用。其次,索引得到使用以后,是否得到了预期的效果,对数据库的性能是否实现了真正意义上的提高,只有合理的索引才能真正提高数据库的性
39、能。语句一:select count(teacher.tno) from teacher where(select count(*)from addtea where addtea.tno=teacher.tno)0) 语句二:select count(teacher.tno) from teacher where exists(select*from addtea where addtea.tno=teacher.tno) 这两条查询语句实现的结果是相同的,但是执行语句A的时候,数据库会对整个审查小组examination表进行扫描,没有使用建立在审查小组examination表上的tno索
40、引,执行语句B的时候,由于在子查询中使用了联合查询,数据库只是对审查小组examination表进行的部分数据扫描,并利用了tno列的索引,所以语句B的效率要比语句A的效率高一些。4.2.5优化SQL语句在使用索引时可以有效的提高查询速度,但如果SQL语句使用不恰当的话,所建立的索引就不能发挥其作用。所以我们应该做到不但会写SQL,还要写出性能优良的SQL语句。在进行查询时,返回的值应该是查询所需要的。在查询中应该尽量减少对数据库中的表的访问行数,使查询的结果范围最小,这就意味着在查询时,不能过多的使用通配符,如:select*from table1语句,而应该做到最小化查询范围,要查询几行几
41、列就选择几行几列,如:select col1 from table1;多数情况下,用户并不需要查询到的所有数据,而只是部分或靠前的数据时,我们也可以通过SQL语句来进行限制查询的结果,如:select top 50 col1 from table1。对于一些特殊的SQL语句,在使用时应正确选择。我们用一组例子来说明。语句A: select count(*) fom emp where sal1000; select count(*) fom emp where sal between 1000and5000; select count(*) fom emp where sal5000;语句B:
42、 select count(sale when sal5000 then 1 else null end) count_poor from emp; 两个语句所得到的查询结果是相同的,但语句二的检索效率要远高于语句B,因为语句A在查询中产生了大量的索引扫描。在对数据库查询时,所使用的语句多种多样,但选择恰当的的字句能够有效的提高查询效率。5 代码优化5.1 代码优化的意义所谓代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码(如四元式代码),也可以是目标代码。等价的含义是使得变换后的代码运行结果与变换前代码运行结果相同。优化的含义是最终生成的目标代码短(运行时
43、间更短、占用空间更小),时空效率优化。原则上,优化可以再编译的各个阶段进行,但最主要的一类是对中间代码进行优化,这类优化不依赖于具体的计算机。编译过程中可进行的优化可按阶段划分:优化可在编译的不同阶段进行,分为中间代码一级和目标代码一级的优化。可按优化涉及的程序范围划分:对同一阶段,分为局部优化,循环优化和全局优化. 进行优化所需要的基础是对代码进行数据流分析和控制流分析。如划分DAG,查找循环,分析变量的定值点和引用点等等。最常用的代码优化技术有删除多余运算,循环不变代码外提,强度削弱,变换循环控制条件,合并已知量与复写传播,以及删除无用赋值等等。 5.2 代码优化的实例5.2.1循环不变量
44、迁移针对提前答辩申请答辩的部分代码,看起来很繁琐,不变量检索起来很费时间,代码如下:varc=Math.random(),d=Math.random(),x=Math.floor(Math.random()*2); switch(x) case0: alert(c*d); break; case1: alert(c*d); break; 将它用一些缩写性质来替代就能够把代码减少为下面这样,两者的实际效果是完全一样的:vari,c=Math.random(),d=Math.random(),j; for(vari=0;i=2,nN*),直接循环计算一次就可以获得所需的值。优化前的代码如下:publicstaticintCalculateFibonacciSequence(intindex)if(index=0)return0;if(index=1|index=2)return1;returnCalculateFibonacciSequence(index-1)+CalculateFibonacciSequence(index-2);用递归算法来计算的话,有很多重复性的操作,采用数组相对来说,效率更高,最终算法如下:publ