SQL SERVER 数据库管理系统上的SQL查询优化—计算机毕业设计.doc
《SQL SERVER 数据库管理系统上的SQL查询优化—计算机毕业设计.doc》由会员分享,可在线阅读,更多相关《SQL SERVER 数据库管理系统上的SQL查询优化—计算机毕业设计.doc(50页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、SQL Server 数据库管理系统上的SQL查询优化摘要人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中如联机事务处理OLTP或决策支持系统DSS中表现得尤为明显。不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。在对它们进行适当的优化后,其运行速度将有比拟明显的提高。为了最有效地优化 Microsoft SQL Server 的性能,您必须明确在哪些方面性能可以得到最大程度的改良,并集中分析这些方面。否那么,您在这些问题上可能花费大量的时间和精力,而
2、并不能得到明显的性能上的提高。设计一个应用系统似乎并不难,但是要想使系统到达最优化的性能并不是一件容易的事。在开发工具、数据库设计、应用程序的结构、查询设计、接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能。关键词:SQL Server数据库 性能优化 查询 数据查询 查询效率 平安性ABSTRACTPeople will often fall into a ill idea while using SQL, namely it is correct to pay close attention to the result to the income very much, a
3、nd has neglected the performance difference that may exist between different implementation methods , this kind of performance difference behaves particularly obviously in the large-scale or complicated database environment (such as on-line transaction processing OLTP or DSS ). I find bad SQL come f
4、rom appropriate index design , fill connection terms and where clause that cant be optimized of copy often among working practice. After carrying on proper optimization to them, its speed of operation improves obviously! In order to optimize the performance of Microsoft SQL Server most effectively,
5、you must define in which respects performance can get maximum improvement , concentrate on analysing these respects. Otherwise, you are on these questions may spend a large amount of time and energy , but can not receive the improvement on obvious performance .It seems easy to design a application s
6、ystem, but it is not an easy thing to want to make the system reach the performance optimized most. Respect of choosing on developing instrument , database design , structure , inquiry design , interface of the application program etc. has excellent choices, this depends on specific application dema
7、nd and develops the skill of the team . Keyword: SQL Server database Performance optimizing Inquiry Data inquiry Inquire about efficiency Security 目 录摘 要-1ABSTRACT-2第一章 综述 (绪论) -41.1 引言-41.2 数据库优化概述-8第二章 设计数据库-82.1 熟悉业务系统- 92.2 标准化与逆标准化-102.3 选择数据类型-102.4 选择索引-14第三章 查询优化-153.1 主键-153.2 通配符-193.3 视图-
8、193.4 存储过程-20第四章 总结-21致谢- 21第一章 综述SQL Server 是一个后台数据库管理系统,他功能强大、操作简便,日益为广阔数据库用户所喜爱,越来越多的开发工具提供了与SQL Server 的接口。了解和掌握SQL Server 的功能,对于一个数据库开发管理人员来说非常必要。SQL Server是一种高性能的大型关系型数据库管理系统,广泛的应用在C/S和B/S体系结构的数据库系统中。评价系统性能优化的标准有:吞吐量、响应时间、并行能力等。本文主要探讨如何优化SQL,取得最快的系统响应速度。1.1引言在一个大型的数据库中,性能成为人们关注的焦点之一,如何让数据库高效有效
9、的运行成为广阔数据库管理人员和开发人员必须要考虑的问题。何谓“好性能性能是一个应用或多个应用在相同的环境下运行时对效率的衡量。性能常用响应时间和工作效率来表示。响应时间是指提交任务到得到返回结果之间的时间开销,含完成一个任务花费的时间。可以从以下三方面来减少响应时间: 减少竞争和等待的次数,尤其是磁盘读写等待次数 用更快的部件 减少利用资源所需的时间绝大多数性能的获得来自于优秀的数据库设计、精确的查询分析和适当的索引。最好性能的获得能够通过确立优秀的数据库设计,在开发时使用SQL Server查询优化器来实现。为了取得更好的数据库性能,我们就需要对数据库进行优化,减少系统资源的竞争,如对数据c
10、ache,过程cache,系统资源和CPU的竞争。1.2数据库优化概述在SQL Server中,有如下优化层次: 应用层大局部性能的获得来自于对SQL应用中查询的优化,这必须是以好的数据库设计为根底的。 数据库层应用共享在数据库层中的资源,这些资源包括硬盘,事务日志和数据cache。 效劳器层在效劳器层有许多共享的资源,包括数据高速缓存,存储过程高速缓存,锁,CPU等。 设备层指的是存储数据的磁盘及其控制器,在这一层,你应尤其关注磁盘的IO。 网络层指连接用户和SQL Server的网络。 硬件层指可利用的CPU。 操作系统层理想地,SQL Server是一台机器的唯一主要应用,它必须和操作系
11、统以及其他sybase软件,如Backup Server或SQL Server Monitor共享处理器、内存以及其他资源。在大多数情况下面,我们是对应用层进行优化,因为对应用性能的优化是设计和编程人员乐于接受的功能,其结果能被观测及检验。查询的性能是SQL应用的整个性能的一个关键。应用层上的问题包括以下内容:l 决策支持DSS.和在线事务处理(OLTP)需要不同的性能策略l 事务设计能够减少并发,因为长的事务保持占用锁,也就减少了其他用户对相关数据的存取l 关联一致性保证的策略。对数据查询修改时需要考虑join操作对性能的影响l 索引可以改善查询性能,但也会增加修改数据的时间l 为了平安而设
12、立的审计限制了性能在应用层优化的选项包括:l 远程处理或复制处理能够把决策支持从OLTP机器中别离出来l 利用存储过程来减少编译时间和网络的利用l 利用最少量的锁去满足你的应用需要数据库层的问题包括:l 建立备份和恢复方案l 在设备上分布存储数据l 审计操作影响性能;仅审计你所需的l 日常的维护活动将导致性能的降低和导致用户不能操作数据库表在数据库层上优化选择包括:l 利用事务日志的阀值来自动转储事务日志防止其超出使用空间l 在数据段中用阀值来监视空间的使用l 利用分区来加速数据的装入l 对象的定位以防止硬盘的竞争l 把重要表和索引放入cache中,保证随时取得效劳器层的问题有:l 应用的类型
13、效劳器是支持OLTP还是DSS,或者两者都支持l 所支持的用户数影响优化决策随着用户数的增加,对资源的竞争会发生改变l 网络负荷l 当用户数和事务数到达一定的数量时复制效劳器或其他分布式处理是一个解决的方法效劳器层的优化的选项包括:l 优化内存一个关键的配置参数和其他方面的参数l 决策是客户端处理还是效劳器端处理有些处理能在客户端进行吗l 配置cache的大小和IO的大小l 增加多个CPUl 为空闲时间排定批处理任务和生成报表l 工作负荷发生改变,重新配置特定参数l 决定是否可能把DSS移到另一个SQL效劳器中设备层设备层的问题包括:l 主设备、包含用户数据库的设备,用户数据设备,或数据库日志
14、是否要镜像l 怎样在设备之间分布系统数据库、用户数据库和数据库日志l 为获得对堆表插入操作的高性能,是否有必要进行分区设备层上优化的选项包括:l 用多个中等大小的设备及多个控制器可能比用少量的大设备有更好的IO性能l 分布数据库,表和索引以在不同的设备上进行IO装载网络层实际上,SQL Server的所有用户都是通过网络存取他们的数据。网络层上的主要问题有:l 网络的流量l 网络的瓶颈l 网络的速度网络层上优化的选项包括:l 配置包的大小,以使其与应用的需要相匹配l 配置子网l 分隔出繁忙的网络运用l 创立一个高容量的网络l 配置多个网络引擎l 更好地设计应用,限制所需的网络传输硬件层在硬件层
15、上的问题包括l CPU的效率l 磁盘的存取:控制器和磁盘l 磁盘备份l 内存的使用在硬件层上优化的选项包括:l 增加CPU以适应工作负荷l 配置调度程序以提高CPU利用率l 遵循多处理器应用设计指导以减少竞争l 配置多个数据cache操作系统层操作系统层的主要问题有:l 文件系统是否被SQL Server独占使用l 内存管理精确估算操作系统和其他程序的内存占用l CPU的利用整个系统共有多少处理器可用?有多少分配给SQL Server在操作系统层优化的选项包括:l 网络接口l 在文件和原始分区之间选择l 增加内存l 把客户操作和批处理移到其他机器上l SQL Server利用多个CPU第二章
16、设计数据库要在良好的SQL Server方案中实现最优的性能,最关键的是要有一个很好的数据库设计方案。在实际工作中,许多SQL Server方案往往是由于数据库设计得不好导致性能很差。所以要设计好数据库就要从以下几点来讨论。2.1 熟悉业务系统对业务系统的熟悉程度对整个数据库系统的性能有很大影响,一个对业务不熟悉的设计人员,尽管有丰富的数据库知识,也很难设计出性能最正确的数据库应用系统。所以我们在做“三江学院师资管理系统这个工程前跟指导老师和用户收集了充足的资料,通过这些资料和经过我们的分析,我在底层数据库建立了13张数据库表,它包括教师表Teacher、党派表Clan、用户表DBA、入党表J
17、oinClan、类别表Kind、学位学历表konwledgeDegree、进修情况表operation、联系 表Phone、兼职情况表Plurality、工作简历表Resume、任职情况表SchoolDuty、任课情况表SchoolTeach、学科表Subject。通过这些表我建立了E-R图党派 m入党入党时间入党地点 m 1 1 m 拥有工作简历 m 1 n 1 m 三江学院任课情况任课学科三江学院任职情况任职属于进修进修情况 联系 m 1 m 1 m拥有学历学位拥有教师 兼职情况 m 1 1 m 兼职 类别分类 12.2 标准化与逆标准化 数据库被标准化后,减少了数据冗余,数据量变小,数据
18、行变窄。这样SQL Server 2000的每一页可以包括更多行,那么每一区里的数据量更多,从而加速表的扫描,改良了单个表的查询性能。但是,当查询涉及多个表的时候,需要用很多连接操作把信息从各个表中组合在一起,导致更高的CPU和I/O花销。那么,有很多时候需要在标准化和逆标准化之间保持平衡,用适当的冗余信息来减少系统开销,用空间代价来换取时间代价。有查询教师全部信息表TeacherInfo,它里面记录了教师根底信息,教师类别信息,教师兼职信息,教师任课信息,教师入党信息,教师任职信息,教师学科信息,教师进修情况信息.这些信息分别在教师表、类别表、兼职情况表、任课情况表、入党表、任职情况表、学科
19、表、进修情况表中存放。如果按照标准化的要求,TeacherInfo查询时就必须要与这么多个表进行连接或者嵌套查询。如果TeacherInfo表中的数据量是在百万级的,那么在一般配置的效劳器上一次复杂查询所需要的时间可能会到达好几分钟。事实上,只要在设计时保证数据的逻辑有效性,很多信息都可以直接冗余在TeacherInfo表中,这些冗余的数据能够极大的提高查询的效率,从而减少CPU和I/O操作。2.3 选择数据类型对每一属性选择什么样的数据类型很大程度上依据表的要求,但是在不违背表要求的前提下,选择适当的数据类型可以提高系统性能。比方有text列存放一本书的信息,用BLOB而不是characte
20、r(1024),BLOB存放的是指针或者文件参照变量,真正的文本信息可以放在数据库之外,从而减少数据库缓存空间,使得程序运行的速度提高。用户可以根据自己的需要定义自己的数据类型。2.4 选择索引在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。而采用索引来加快数据处理速度也成为广阔数据库用户所 接受的优化方法。在良好的数据库设计根底上,能有效地使用索引是SQL Server取得高性能的根底,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大局部开销是磁盘I/O,使用索引提高性能的一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL SERVER 数据库管理系统上的SQL查询优化计算机毕业设计 数据库 管理 系统 查询 优化 计算机 毕业设计
限制150内