- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle RDBMS SQL语句处理流程汇
Oracle RDBMSSQL语句处理流程 赵元杰 中程在线(北京)科技有限公司 2009.8 内容提要 优化有关的术语 一个银行业务处理流程 理解SQL执行过程 关于CURSOR_SHARING参数 监视SQL Area 的SQL语句 调整SQL步骤 性能有关术语 共享池概念回顾 : Shared pool是SGA的一部分,它是用来存放由应用用户发出的SQL和PL/SQL语句 ; Shared Pool由3个部件组成 : 库缓存(library cache)-用来存放应用用户刚发出的SQL及PL/SQL语句、存储过程、函数、包、触发器、同义词PL/SQL包及JAVA类库等对象信息 ; 数据字典(Data Dictionary Cache)-表、列等信息存储在该区 ; 用户全局区(User Global Area)-使用共享服务器选件时,用户全局区才有用,用户全局区用于存放用户会话的应用 性能有关术语 Oracle共享池库高速缓存工作方式: 用来缓存共享的SQL statements 和PL/SQL块,这些可以给所有的连接用户共享 由LRU(最小使用最先淘汰算法)来管理 不是FIFO(先进先出)算法管理!! Oracle如何知道你的SQL语句是否在里面 先通过一个hash算法将Statement text运算成一个hash数值 然后通过这个hash值在共享池中查找 性能有关术语 SQL语句分析 SQL语法分析(Syntactical Analysis) 语法正确性分析,如关键字拼写等 语义分析(Semantic Analysis) 当前用户访问表是否有权限等 存入共享池( shared pool ) 当前SQL语句语法和语义正确后存储在SGA的共享词内,可供当前会话再次使用或其他用户使用 性能有关术语 SQL语句的HASH值 SQL语句在语义分析后,都产生一个叫SQL Hsah Values的值 SQL Hsah Values是由Hash函数产生的,在数据库中相同的SQL语句具有相同的Hash值 Oracle系统通过SQL Hash 值来判断某个语句是否出现过 运行过程中,可从V$SQLTEXT查询到SQL语句及其Hash值: 性能有关术语 SQL语句重新加载 如果在SHARED POOL中找不到当前会话所发出的SQL语句,则Oracle系统重新加载 重新加载的SQL语句要做下面的工作: 语法正确性分析 如关键字拼写等 性能有关术语 V$libaraycache有关术语 命名空间:SQL AREA, TABLE/PROCEDURE, BODY, TRIGGER 等 gets: (parse)每当一条语句被分析一次时,该语句对应的名称空间的gets加1 gethits : 分析时在对应的名称空间找到已经存在时加1,其分析后的代码和执行计划在内存中找到了,不再执行硬分析,直接使用 pins: (excution)每当一条语句执行一次时,该语句对应的名称空间的的pins加1 reloads: (parse)因为找到的分析代码版本已经过期或作废而被重新硬分析的次数 invalidations: 因为数据词典发生变化,该语句被标记成失效,被迫重新做硬分析的次数 性能有关术语 绑定变量 绑定变量就是将类似的SQL语句的变化部分采用变量替代,从而减少Oracle系统类似语句的重新分析(硬分析) 如果采用绑定变量,系统只做软分析工作 SQL语句硬分析原因: 没有共享的SQL(没有使用绑定变量), 共享SQL重新硬分析了(查询V$sqlarea的parse_calls和excutions字段,如果某个SQL对应的parse_calls接近excutions数,说明该SQL经常被重新硬分析) 注意:并不是绑定变量就是最好 性能有关术语 共享光标(CURSOR_SHARING) 绑定变量原因: 没有共享的SQL 硬分析 注意:并不是绑定变量就是最好 性能有关术语 SQL语句执行计划 cost指cbo中这一步所耗费的资源,这个值是相对值 card是指计划中这一步所处理的行数 bytes指cbo中这一步所处理所有记录的字节数,是估算出来的一组值。 内容提要 优化有关的术语 一个银行业务处理流程 理解SQL执行过程 关于CURSOR_SHARING参数 监视SQL Area 的SQL语句 调整SQL步骤 一个银行业务处理流程 1. 发出查询余款的SQL语句,如: 先查询帐户余额: SQL语句通过SGA得到服务器进程; 服务器进程检查共享池中有无该条语句,无该语句则将放置共享池中并准备运行; 执行SQL语句,把存放有余款的数据块从数据文件中读到SGA的数据高速缓冲区; 显示结果,比如余款为$325。 一个银行业务处理流
您可能关注的文档
最近下载
- 电子部超级说服力.pdf VIP
- 地方化债又出新规:从35、47、14号文到134号文.docx
- (完整word版)学前教育专业简笔画教案.doc
- 《运筹学》课程教学大纲(本科).docx VIP
- 公路工程监理资料管理.ppt
- 华中农业大学 614微生物学 2016年考研真题.pdf VIP
- 参考学习资料 附件1:国铁集团工电部关于新建西至华中地区铁路煤运通道线名运营里程线路允许速度的函(审签稿).docx
- (新版)拖拉机驾驶证科目一知识考试题库500题(含答案).docx
- 人教部编2024年新改版语文五年级上册全套月考试题及答案(共4套).pdf VIP
- 17小学语文《盼》课件(共40张PPT).pptx VIP
文档评论(0)