- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈Oracle数据库SQL优化
浅谈Oracle数据库SQL优化
何磊
(中国移动有限公司贵州分公司贵州贵阳550004)
【摘要】Oracle数据库是当前应用最广泛的大型数据库之一,其性能优化直 接关系到系统的运行效率。木文主要阐述了如何通过SQL调整来实现Oracle数 据库性能的优化。
【关键词】Oracle数据库;SQL;性能优化
【中图分类号】TP311.138【文献标识码】A【文章编号】
1009-9646(2009)04-0036-021
引言
随着Oracle数据库在各种大型商业应用系统中的广泛使用,Oracle数据库优化在 系统实际应用中发挥着越来越重要的作用,数据库优化已成为数据库维护过程中 的重要内容。
Oracle数据库可以从以下几个方面来进行优化。首先,在数据库设计阶段对其逻 辑结构和物理结构进行优化设计,使之在满足需求条件的情况下,使系统性能达 到最佳,系统开销达到最小,为下一步的调整创造良好的先决条件。然后可在此 基础上进行网络调整、磁盘调整、实例调整、对象调整,最后进行SQL调整,最 终实现数据库系统整体优化。木文主要从SQL调整分析如何实现对数据库的优化。
Oracle SQL调整的目标
2.1去掉不必要的大表全表扫描。一般情况下,可以通过添加索引的方法来去掉 不必要的全表扫描。
2.2缓存小表全表扫描。如果全表扫描是最好的访问方式,可以通过将小表放入
KEEP池中的方法将其缓存,以提高访问速度。
2.3检验优化索引的使用。检查每一个索引,确保Oracle使用正确的索引。
2.4检验优化的连接方法。
Oracle SQL调整的过程
3.1定位严垂影响系统性能的SQL语句。从V$sqlarea视图和stats$sql_summary 表中获得SQL语句的列表,这些列表可以根据以下参数进行排序。
3.1.1executions,定位执行频繁的查询。
disk_reads,定位高磁盘读取量的查询。
rows_processed,定位处理大量记录的查询。
buffer_gets,定位高缓存读取量的查询。
sorts,定位由排序造成速度下降的查询。
根据以上参数就可以确定具有高影响力的SQL语句。
3.2抽取和解释SQL语句。在指定SQL语句后,需要对它进行“解释”以确定现 存的执行计划,并对它进行调整来确定这个执行计划是否进行改进。
3.3调整SQL语句。通过以上的步骤,接下来就可以使用以下方法对拥有非优化 执行计划的SQL语句进行调整。
331提示。通过添加提示修改SQL执行计划,并代替使用存储框架的方法使执 行计划变更持久化;Oracle提示可分为:优化器提示、表连接提示、表反连接提 示、索引提示、并行提示、表访问提示、子查询中的提示。数据库管理员可根据 具体情况使用以上提示,以达到SQL调整的目的。
3.3.2通过添加索引去掉全表扫描。不必要的全表扫描会造成大量不必要的输入 输出,而且还会拖垮整个数据库。所以,首先我们应预防不必要的全表扫描出现。 一般以下情况会导致不必要的全表扫描,在SQL调整过程中应注意:
A、 表的最高峰值过高。如果一个表中删除了大量的纪录,最高峰值仍然保持在 初始的位置,这将给CBO (基于成本的优化器)带来有关表大小的错误信息。所 以应找到这些表并将最高峰值调低到适当的值。
B、 不存在字段矩形图的不平衡索引分布。
C、 使用倾向于全表扫描的CHOOSE或ALL_ROWS优化器模式。
D、 将表设置为允许并行查询,这通常会导致CBO错误地
E、 使用NULL条件的查询;可以考虑将NULL转换为其他特殊字符以避免全表扫 描;下面的例子会调用全表扫描:
Select * from abc where user_name is NULLo
可以通过将NULL值转换成直接量“N/A”,以查询“N/A”值的方式避免全表扫 描。修改后:
update abc set user_name二N/A〃 where user_name is NULL;
select * from abc where user_name=N/A〃;
F、 对没有索引的字段查询;
G、 带有LIKE条件的查询。在LIKE掩码的开始端使用“%”,那么这个查询将调 用全表扫描。
但LIKE掩码是由字符开始,该查询就可以使用现存的索引;例如,下面的语句 将导致全表扫描:
Select * from abc where user_name like %lei〃;
而语句Select * from abc where user_name like h%”可避免全表扫描。女口果我 们无法避免以“%”开始后跟字符的like掩码查询,可以使用reverse内置函数来 创建基于函数的索引:
create index user
您可能关注的文档
- 浅谈LED路灯GPRS智能监控系统.doc
- 浅谈LED路灯照明的合同能源管理模式及应用优势.doc
- 浅谈LED在公园景观照明中的应用.doc
- 浅谈LEED对我国绿色建筑评价体系的启示和借鉴.doc
- 浅谈LOFT空间艺术与时尚的定位.doc
- 浅谈Paypal支付平台.doc
- 浅谈PBL教学模式在麻醉实习教学中的应用.doc
- 浅谈PDCA循环法在高校学生管理工作中的应用.doc
- 浅谈PDCA循环在新护士长护理管理中的运用.doc
- 浅谈PET连续聚合工艺节能环保改造.doc
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
最近下载
- 产后出血预防及处理指南(2023版)PPT课件.pptx VIP
- 《建筑与市政工程施工质量控制通用规范》(GB-55032-2022).docx VIP
- 骨科质量与安全管理指标.pdf VIP
- 国开电大学习网《农业推广学》形成性考核任务1-3答案.pdf VIP
- 气囊测压表获奖课件.pptx VIP
- 《图形创意》课件之五图形创意的语境.ppt VIP
- 故障分析与故障排除.pdf VIP
- 高中地理湘教版必修 第二册(2019)_农业区位因素 公开课教案课件教学设计资料.pptx VIP
- 大学计算机基础练习题库+答案.docx VIP
- 茶树育种学知到智慧树期末考试答案题库2025年信阳农林学院.docx VIP
原创力文档


文档评论(0)