通过分析SQL语句的执行计划优化SQL.docx

通过分析SQL语句的执行计划优化SQL.docx

ID:56686876

大小:48.10 KB

页数:35页

时间:2020-07-04

通过分析SQL语句的执行计划优化SQL.docx_第1页
通过分析SQL语句的执行计划优化SQL.docx_第2页
通过分析SQL语句的执行计划优化SQL.docx_第3页
通过分析SQL语句的执行计划优化SQL.docx_第4页
通过分析SQL语句的执行计划优化SQL.docx_第5页
资源描述:

《通过分析SQL语句的执行计划优化SQL.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、通过分析SQL语句的执行计划优化SQL语句在数据库的日常维护中,调整个别性能较差的SQL语句是一项极富挑战性的工作。其中的关键在于如何得到SQL语句的执行计划和如何从SQL语句的执行计划中发现问题。总是想将日常经验的点点滴滴总结一下,但是直到最近才下定决心,总共花了3个周末时间,才将其整理成册,便于自己日常工作。现在将其发表出来希望能与更多的朋友分享。  这篇文章主要介绍与SQL调整有关的内容,内容涉及多个方面:SQL语句执行的过程、Oracle(大型网站数据库平台)优化器,表之间的关联,如何得到SQL执行计划,如何分析执行计划等内容,从而由浅到深的方式了

2、解SQL优化的过程,使大家逐步步入SQL调整之门。  一:性能调整综述  Oracle(大型网站数据库平台)数据库是高度可调的数据库产品。本章描述调整的过程和那些人员应与Oracle(大型网站数据库平台)服务器的调整有关,以及与调整相关联的操作系统硬件和软件。本章包括以下方面:  谁来调整系统?  什么时候调整?  建立有效调整的目标  在设计和开发时的调整  调整产品系统  监控产品系统  谁来调整系统:  为了有效地调整系统,若干类人员必须交换信息并牵涉到系统调整中,例如:  应用设计人员必须传达应用系统的设计,使得每个人都清楚应用中的数据流动.  应

3、用开发人员必须传达他们选择的实现策略,使得语句调整的过程中能快速、容易地识别有问题的应用模块和可疑的SQL语句.  数据库管理人员必须仔细地监控系统活动并提供它们的资料,使得异常的系统性能可被快速得识别和纠正.  硬件/软件管理人员必须传达系统的硬件、软件配置并提供它们的资料,使得相关人员能有效地设计和管理系统。  简而言之,与系统涉及的每个人都在调整过程中起某些作用,当上面提及的那些人员传达了系统的特性并提供了它们的资料,调整就能相对的容易和更快一些。  不幸的是,事实上的结果是:数据库管理员对调整负有全部或主要的责任。但是,数据库管理员很少有合适的系统

4、方面的资料,而且,在很多情况下,数据库管理员往往是在实施阶段才介入数据库,这就给调整工作带来许多负面的影响,因为在设计阶段的缺陷是不能通过DBA的调整而得以解决,而设计阶段的缺陷往往对数据库性能造成极大的影响。  其实,在真正成熟的开发环境下,开发人员作为纯代码编写人员时,对性能的影响最小,此时大部分的工作应由应用设计人员完成,而且数据库管理员往往在前期的需求管理阶段就介入,为设计人员提供必要的技术支持。  调整并不是数据库管理员的专利,相反大部分应该是设计人员和开发人员的工作,这就需要设计人员和开发人员具体必要的数据库知识,这样才能组成一个高效的团队,然

5、而事实上往往并非如此。  什么时候作调整?  多数人认为当用户感觉性能差时才进行调整,这对调整过程中使用某些最有效的调整策略来说往往是太迟了。此时,如果你不愿意重新设计应用的话,你只能通过重新分配内存(调整SGA)和调整I/O的办法或多或少地提高性能。Oracle(大型网站数据库平台)提供了许多特性,这些特性只有应用到正确地设计的系统中时才能够很大地提高性能。  应用设计人员需要在设计阶段设置应用的性能期望值。然后在设计和开发期间,应用设计人员应考虑哪些Oracle(大型网站数据库平台)特性可以对系统有好处,并使用这些特性。  通过良好的系统设计,你就可以

6、在应用的生命周期中消除性能调整的代价和挫折。图1-1图1-2说明在应用的生命周期中调整的相对代价和收益,正如你见到的,最有效的调整时间是在设计阶段。在设计期间的调整能以最低的代价给你最大的收益。  当然,即使在设计很好的系统中,也可能有性能降低。但这些性能降低应该是可控的和可以预见的。  调整目标  不管你正在设计或维护系统,你应该建立专门的性能目标,它使你知道何时要作调整。如果你试图胡乱地改动初始化参数或SQl语句,你可能会浪费调整系统的时间,而且无什么大的收益。调整你的系统的最有效方法如下:  当设计系统时考虑性能  调整操作系统的硬件和软件  识别性

7、能瓶颈  确定问题的原因  采取纠正的动作  当你设计系统时,制定专门的目标;例如,响应时间小于3秒。当应用不能满足此目标时,识别造成变慢的瓶颈(例如,I/O竞争),确定原因,采取纠正动作。在开发期间,你应测试应用研究,确定在采取应用之前是否满足设计的性能目标。  当你正在维护生产库系统时,有多种快速有效的方法来识别性能瓶颈。  不管怎样,调整通常是一系列开销。一旦你已确定了瓶颈,你可能要牺牲一些其它方面的指标来达到所要的结果。例如,如果I/O有问题,你可能需要更多内存或磁盘。如果不可能买,你可能要限制系统的并发性,来获取所需的性能。然而,如果你已经明确地

8、定义了性能的目标,那用什么来交换高性能的决策就变的很容易的,因为你

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。