SQL语句常用的优化方法.ppt

SQL语句常用的优化方法.ppt

ID:57973501

大小:1.84 MB

页数:66页

时间:2020-09-04

SQL语句常用的优化方法.ppt_第1页
SQL语句常用的优化方法.ppt_第2页
SQL语句常用的优化方法.ppt_第3页
SQL语句常用的优化方法.ppt_第4页
SQL语句常用的优化方法.ppt_第5页
资源描述:

《SQL语句常用的优化方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、背景:OLTP系统,ORACLE10G作者:ZALBBSQL语句常用的调优方法1为什么要调优SQL?2哪些SQL需要调优?3如何获取需要调优的SQL?4如何手工调优SQL?5另外一些调优方法和工具。611G在执行计划上的一些改进。目录为什么要调优SQL?通常来讲,要打造高效快捷的应用系统,需要从最初的业务需求入手,在分析、整理出闭环的业务操作流程后,按照范式的要求,尽量用简单的数据结构,来实现业务的运行和流转(可以考虑对基础数据作少量的数据冗余,以减少关联);同时,根据业务的需求,兼考虑对历史业务数据的迁移,只保留最近

2、一段时期内的数据,以便让系统轻装运行。但是,由于业务的复杂性,设计人员的知识、视野、前瞻性等的局限,在系统结构设计时,难以考虑周全;并且,由于开发人员的水平参差不齐,编写的代码也存在缺陷。经统计评估,排除系统结构设计不善导致的因素外,新的应用系统,有80%的效率问题,是因为低效的SQL导致,这就需要DBA找出这些低效的SQL,加以优化。例子哪些SQL需要优化?运行时间较长的SQL。逻辑读较高的SQL。物理读较高的SQL。从哪里获取需要调优的SQL?*AWR(ASH,ADDM),1ElapsedTime(含CPU较高者)

3、2BufferGets3PhysicalReads*EM,性能分析-->SQLTuning*当前库,根据V$SESSION.LAST_CALL_ET,找到运行时间最长的进程,获取SQL_ID,再找出SQL语句和执行计划。AWR上要关注的SQL项如何手工调优SQL?A如何获取语句的执行计划?B如何解读执行计划中的执行顺序?CSQL语句的调优原则。D一些调优常识。E手工调优的粗略思路。F10046事件的使用方法。G两个案例。如何获取语句的执行计划?2根据SQL_ID查询,select*fromtable(dbms_xpla

4、n.display_cursor('&sql_id',0,'allstatslast'));还有:'advanced','typical','serial','basic‘.v$session.sql_child_number=0,1,,,3从视图v$sql_plan中获取。1直接解析SQL语句.ExplainplanforXXX;Select*fromtable(dbms_xplan.display);如何解读执行计划中的执行顺序?在获取SQL语句的执行计划后,这样解读执行顺序:*对同一凹层,先上后下执行,*对不同凹

5、层,先里后外执行。对于同一凹层,先上后下对于不同凹层,先里后外。所以先NL,后hash。真正的执行顺序执行顺序:3,5,4,2,7,6,1,0SQL语句的调优原则在一个OLTP系统里,优化SQL语句的原则,就是尽量减少数据的读取。调优的目的,实际是设法让语句在执行过程中,尽可能地只读取必要的数据,不读或尽量少读不符合要求的数据。SQL调优中的一些常识执行计划中涉及的一些概念*不论SQL中读取多少个表,在执行过程中,每次都是两个表/结果集操作,得到新的结果后,再和下一个表/结果集操作,,,直到结束。在一个多表关联的执行计

6、划中,必须包括这3要素:*表/对象/数据集的读取顺序(joinorder)。*数据的读取方法(accesspath)。*表/数据的关联方法(joinmethod)。这3个要素是判断执行计划优秀与否的关键。*可选择性(Selectivity),>=0and<=1。*预估记录数(Cardinality),表/视图/操作后的结果集。*开销(Cost),CBO选择最佳执行计划的标准:越低越好。ACCESS和FILTER的区别在解析出SQL语句的执行计划后,在执行计划的末尾,通常会出现这些信息:FILTER指按照某个条件过滤数据

7、,ACCESS指按照某个条件/关系获取数据,在本文中,这样定义此词汇关联条件:wherea.col1=b.col1,,,过滤条件:wherea.col1<=103(常量),,,关联条件,和过滤条件都称为约束条件。手工调优的粗略思路1获取SQL的执行计划。2判断当前的执行计划是否正常:手工计算Where语句后各过滤条件(非关联条件)的预估数值,找出最强的过滤条件(过滤后剩余数据最少的条件)。一般来讲,若语句中各对象的统计信息准确,CBO经过计算后,基本上都是从过滤条件最强的表开始,判断执行计划是否从此条件开始。3检查执行

8、计划中第1步的预估值,是否与实际值相近。否,转步骤7。4根据过滤条件判断,数据的读取方式是否合适(读表,读索引,或根据索引返回原表获取)。5找出与第1步要执行的表存在关联关系的表,根据其过滤后的结果集判断,两表间的关联方法是否合适(也可能和一结果集关联)。6再根据其它关联条件,找出最近的表/结果集和上述结果集,作关联。如估算不准,

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

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

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