性能优化培训文档课件.ppt

性能优化培训文档课件.ppt

ID:56995104

大小:125.50 KB

页数:22页

时间:2020-07-26

性能优化培训文档课件.ppt_第1页
性能优化培训文档课件.ppt_第2页
性能优化培训文档课件.ppt_第3页
性能优化培训文档课件.ppt_第4页
性能优化培训文档课件.ppt_第5页
资源描述:

《性能优化培训文档课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、广州赛意信息科技有限公司性能优化培训张文锋目录SQL语句处理的过程ORACLE的几种优化器访问路径(方法)表之间的连接如何干预执行计划实例讨论性能优化培训SQL语句处理的基本过程SQL语句处理的基本过程第1步:CreateaCursor创建游标第2步:ParsetheStatement分析语句第3步:DescribeResultsofaQuery描述查询的结果集第4步:DefineOutputofaQuery定义查询的输出数据第5步:BindAnyVariables绑定变量第6步:Paralle

2、lizetheStatement并行执行语句第7步:RuntheStatement运行语句第8步:FetchRowsofaQuery取查询出来的行第9步:ClosetheCursor关闭游标;PL/SQL简介PL/SQL简介:PL/SQL(procedurelanguage/SQL)是标准SQL基础上的增加过程化处理的语言,是ORACLE对SQL的扩充。与标准SQL语言一样,也是ORACLE客户端工具(如SQLPLUS,DEVELOPER/2000)访问服务器的语言PL/SQL与SQLSQL(S

3、tructuredQueryLanguage)是第四代程序语言,是一种对关系数据库(RDBMS)进行操作的标准化语言,它是用来设置,使用,维护关系数据库。PL/SQL是SQL的扩展,增加了过程化处理PL/SQL对于SQL优缺点程序过程模块化(不是面向对象的)程序易移植,可以使用与任何有使用ORALCE的服务器程序易维护,在数据库中重新编译既可可以提高数据库性能;性能优化培训ORACLE的几种优化器ORACLE的几种优化器基于规则的优化器:ORACLE7之前,主要是使用基于规则的优化器。RACLE

4、在基于规则的优化器中采用启发式的方法(HeuristicApproach)或规则(Rules)来生成执行计划。例如,如果一个查询的where条件(whereclause)包含一个谓词(predicate,其实就是一个判断条件,如”=”,“>”,”<”等),而且该谓词上引用的列上有有效索引,那么优化器将使用索引访问这个表,而不考虑其它因素,如表中数据的多少、表中数据的易变性、索引的可选择性等。此时数据库中没有关于表与索引数据的统计性描述,如表中有多上行,每行的可选择性等。优化器也不考虑实例参数,如

5、multiblocki/o、可用排序内存的大小等,所以优化器有时就选择了次优化的计划作为真正的执行计划,导致系统性能不高。基于代价的优化器:SQL(StructuredQueryLanguage)是第四代程序语言,是一种对关系数据库(RDBMS)进行操作的标准化语言,它是用来设置,使用,维护关系数据库。PL/SQL是SQL的扩展,增加了过程化处理;ORACLE的几种优化器基于代价的优化器:基于代价的优化器--CostBasedOptimization(简称CBO)Oracle把一个代价引擎(Co

6、stEngine)集成到数据库内核中,用来估计每个执行计划需要的代价,该代价将每个执行计划所耗费的资源进行量化,从而CBO可以根据这个代价选择出最优的执行计划。一个查询耗费的资源可以被分成3个基本组成部分:I/O代价、CPU代价、network代价。I/O代价是将数据从磁盘读入内存所需的代价。访问数据包括将数据文件中数据块的内容读入到SGA的数据高速缓存中,在一般情况下,该代价是处理一个查询所需要的最主要代价,所以我们在优化时,一个基本原则就是降低查询所产生的I/O总次数。CPU代价是处理在内存

7、中数据所需要的代价,如一旦数据被读入内存,则我们在识别出我们需要的数据后,在这些数据上执行排序(sort)或连接(join)操作,这需要耗费CPU资源。;性能优化培训访问路径(方法)访问路径(方法)全表扫描(FullTableScans):为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限制条件。Oracle顺序地读取分配给表的每个数据块,直到读到表的最高水线处(highwatermark,标识表的最后一个数据块)。一个多块读操作可以使一次I/O能读取多块数据块

8、。而不是只读取一个数据块,这极大的减少了I/O总次数,提高了系统的吞吐量,所以利用多块读的方法可以十分高效地实现全表扫描,而且只有在全表扫描的情况下才能使用多块读操作。;访问路径(方法)通过ROWID的表存取:行的ROWID指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过ROWID来存取数据可以快速定位到目标数据上,是Oracle存取单行数据的最快方法。为了通过ROWID存取表,Oracle首先要获取被选择行的ROWID,或者从语句的WHERE子句中得到,或者通过表的一个或多个索引

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

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

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