- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OracleSQL语法和性能优化
Oracle SQL的性能优化
2012-6-2 史服宇
目录
Oracle SQL的性能优化 1
1. 术语 1
2. 性能优化的策略和原则 2
3. 常见的诊断和性能优化工具 3
3.1. 操作系统参数的监控: 3
3.2. 数据库参数调整 3
3.3. 应用系统的通用优化工具 4
3.4. Sql的优化工具 5
4. SQL优化的基本原则 5
5. 一些有用的sql语句 8
6. 思考 9
术语
RBO和CBO:Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-BasedOptimization,简称为RBO)和基于代价的优化方式(Cost-BasedOptimization,简称为CBO)。
A、RBO方式优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
B、CBO方式依词义可知,它是看语句的代价(Cost)了,这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是你在做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些我们应及时更新这些信息。
内存分配(SGA和PGA) SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
性能优化的策略和原则
性能优化的策略和原则
Oracle数据库的性能优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面,而应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了Oracle数据库的性能。
优化调整主要集中在以下几个方面
设计调整—应用的设计是ORACLE性能中最重要的因素。
实例调整—调整PGA、SGA等初始化参数。
对象调整—对表及索引的存储参数如pctfree、pctuse、freelists等。这些参数能对性能参数比较大的影响。
SQL调整—因为对数据库的访问是通过SQL来实现的所以这部分的调整最花时间。
服务器、网络及磁盘调整—如果出现诸如CPU忙、内存交换频繁、磁盘I/O瓶颈等情况,我们需检查服务器、网络及磁盘配置。
一般性能优化的基本方法
设立合理的性能优化目标
我们做任何事情都会有个目标,没有了目标就会茫然,不知所措,性能优化也不例外。有了目标还是不够的,就像我们平时说的要优化系统,要优化到什么程度呢?所以说设立目标的最重要的一点是它们必须是可量化和可达到的。
测量并记录当前性能
利用相关工具进行量化
确定当前oracle的性能瓶颈(等待什么)
从Oracle v$system_event、v$session_event和v$session_wait中获得等待事件,进而找出影响性能的对象和sql语句
确定瓶颈原因
优化所需的部分(应用程序、数据库、i/o、争用、os、存储、网络等)
跟踪并实施更改过程
测量并记录当前性能
重复3-7,直到满足优化目标
常见的诊断和性能优化工具
操作系统参数的监控:
主要是监测OS的状况
(1)Windows 上的监控使用控制面板-〉管理工具-〉性能即可
(2)UNIX上的监控使用通用性的工具,包括sar、iostat、cpustat、mpstat、netstat、top、osview等。
打开enterprise manager console
查看数据库的众多参数,每个值的意思
打开工具菜单,里面有众多的工具. 如top sql
Oracle SQL性能检测的命令和工具
用下列SQL工具找出低效SQL:
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND( ( BUFFER_GETS-DISK_READS)/ BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT
FROM V$SQLAREA
WHERE EXECUTIONS0 AND BUFFER_GETS 0 AND (BUFFER_GETS-DISK_READS) / BUFFER_GETS 0.8
ORDER BY 4 DESC;
使用TKPROF 工具来查询SQL性能状态 SQL trace 工具收集正在执行的SQL的性能状态数据并记录到一个跟踪文件中. 这个跟踪文件提供了许多有用的
您可能关注的文档
- 教师考评量化方案2014年10月17日.doc
- 新郑太极物业管理方案.doc
- 方策公司软件开发部绩效考核方案.doc
- 新农村文化建设中新田县民间乐队发展现状调查报告.doc
- 新钢公司第一炼钢厂相关方安全管理协议.doc
- 施工升降机安拆方案交底.docx
- 施工升降机安装拆卸安全协议和合同.doc
- 施工电梯安全旁站方案.doc
- 施工电梯安装方案01.doc
- 施工电梯施工方案改doc2.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)