- 1、本文档共207页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ORACLESQL性能优化(全)ppt课件
SQL语句优化是提高性能的重要环节 开发人员不能只注重功能的实现,不管性能如何 开发人员不能把Oracle当成一个黑盒子,必须了解其结构、处理SQL和数据的方法 必需遵守既定的开发规范 未经过SQL语句优化的模块不要上线 SQL语句优化的过程 定位有问题的语句 检查执行计划 检查执行过程中优化器的统计信息 分析相关表的记录数、索引情况 改写SQL语句、使用HINT、调整索引、表分析 有些SQL语句不具备优化的可能,需要优化处理方式 达到最佳执行计划 什么是好的SQL语句? 尽量简单,模块化 易读、易维护 节省资源 内存 CPU 扫描的数据块要少 少排序 不造成死锁 SQL共享原理 ORACLE将执行过的SQL语句存放在内存的共享池(shared buffer pool)中,可以被所有的数据库用户共享。 当你执行一个SQL语句(有时被称为一个游标)时, 如果它和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的 执行路径. 这个功能大大地提高了 SQL的执行性能并节省了内存的使用。 SQL共享的三个条件 当前被执行的语句和共享池中的语句必须完全相同 (包括大小写、空格、换行等) 两个语句所指的对象必须完全相同 (同义词与表是不同的对象) 两个SQL语句中必须使用相同的名字的绑定变量(bind variables) Sql 处理过程 SQL PARSE与共享SQL语句 当一个Oracle实例接收一条sql后 1、Create a Cursor 创建游标 2、Parse the Statement 分析语句 3、Describe Results of a Query 描述查询的结果集 4、Define Output of a Query 定义查询的输出数据 5、Bind Any Variables 绑定变量 6、Parallelize the Statement 并行执行语句 7、Run the Statement 运行语句 8、Fetch Rows of a Query 取查询出来的行 9、Close the Cursor 关闭游标 为什么要bind variables? 字符级的比较: SELECT * FROM USER_FILES WHERE USER_NO = ; 与 SELECT * FROM USER_FILES WHERE USER_NO = ; 检查: select name,executions from v$db_object_cache where name like select * from user_files% 什么叫做重编译问题 什么叫做重编译? 下面这个语句每执行一次就需要在SHARE POOL 硬解析一 次,一百万用户就是一百万次,消耗CPU和内存,如果业务 量大,很可能导致宕库…… 如果绑定变量,则只需要硬解析一次,重复调用即可 select * from dConMsg where contract_no = 32013484095139 绑定变量解决重编译问题 未使用绑定变量的语句 sprintf(sqlstr, insert into scott.test1 (num1, num2) values (%d,%d),n_var1, n_var2); EXEC SQL EXECUTE IMMEDIATE :sqlstr ; EXEC SQL COMMIT; 使用绑定变量的语句 strcpy(sqlstr, insert into test (num1, num2) values (:v1, :v2)); EXEC SQL PREPARE sql_stmt FROM :sqlstr; EXEC SQL EXECUTE sql_stmt USING :n_var1, :n_var2; EXEC SQL COMMIT; 绑定变量的注意事项 注意: 1、不要使用数据库级的变量绑定参数cursor_sharing来强 制绑定,无论其值为 force 还是similar 2、有些带 的语句绑定变量后可能导致优化器无法正确 使用索引 数据库性能 影响数据库系统性能的要素: 主机CPU,RAM,存储系统; OS参数配置,ORACLE参数配置; 应用方面:数据库设计及SQL编程的质量 一个性能优秀的应用系统需要: 良好的硬件配置;正确合理的数据库及中间件参数配置;合理的数据库设计;良好的sql编程;运行期的性能优化 SQL Tunning 的重
您可能关注的文档
最近下载
- T BJWSA 0003-2020电力保障专业应急救援队伍建设规范.docx
- 新人教版四年级数学上册第三单元《角的度量》核心素养教案.docx
- 新概念英语课件NCE2_Lesson36(共34张).ppt
- 老年护理安宁疗护课件.pptx
- 脱硫烟道、吸收塔玻璃鳞片防腐施工组织设计方案.doc
- 教科版物理八年级上册第二章 运动与能量 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
- 统编人教版高中政治(必修4)哲学与文化第5课第二框《社会历史的发展》优质说课稿.doc
- 创建全国文明城市知识竞赛题库(试题附答案70个) .pdf VIP
- 青海省绿色建筑设计标准.pdf
- 大班音乐《八月十五的月亮》教案与反思.doc
文档评论(0)