- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IOracle数据库编程调优手册
Oracle数据库编程调优手册
目录
前 言 4
一、ORACLE数据加载优化(SQLLoader) 4
二、UPDATE优化 4
1、对全表的Update操作 4
2、有条件的Update操作 5
3、多表连接Update操作 5
4、两张表关联Update?的三种方式 6
5、用视图代替对表的Update操作 6
三、DELETE优化 6
1、通过分拆表,避免DELETE操作 6
2、通过中间表,用INSERT代替DELETE操作 6
四、DBA级别优化提示 6
五、其它优化提示 6
前 言
本文根据最近一段时间,技术部与6.0项目组共同在做系统优化过程中,最常用的做法做一个总结。
目前只收录最近优化时的一些做法,供各项目组参考。各个项目组在实际开发过程中,如有其它优化SQL的技巧,也请提交技术部,形成技术文档,供各项目组参考。
性能优化的几个原则:
简化业务流程是提高性能的最可靠的方法------它可以给你的性能带来成倍的提升。
不要把希望寄托在DBA得身上,它不可能给你的性能带来成倍的提升。
尽量少用或者不用Update和Delete语句。
一、ORACLE数据加载优化(SQLLoader)
用于外部数据加载的表应该尽量简单,尽量不要创建主键、字段的Default值以及其它约束。这样可以充分利用Oracle数据库的直接路径加载(Direct=y)、并行加载(PARALLEL
=true)提高数据加载性能。
[示 例]
用SQL Loader加载数据时使用直接路径加载(Direct Path Loads)参数 Direct=y(或者DIRECT=true),可以使用下列方法:
方法:sqlldr scott/tiger control=ldr.ctl direct=y
二、UPDATE优化
Oracle数据库中对大表(通常更新的记录数在1万条以上)进行Update操作的代价是非常高的,但是对表的INSERT、SELECT操作则相对较快。因此应该从数据库结构设计、SQL语句中尽量不使用对大表的Update操作,针对不同情况,可以参考以下几种做法:
1、对全表的Update操作
对全表的Update操作,可以先把数据Select到一个临时表中,再把被Update的表用truncate删除,然后把数据再从临时表Insert到被Update表中。例如:
update ea_custacc.inv_acc set inv_acc=nvl(trim(inv_acc),1);
上述全表的Update操作可以改为下面的一系列SQL语句替代:
--1.将更新后的数据Inser到临时表CREATE TABLE inv_acc_tmp AS SELECT nvl(trim(inv_acc),1) inv_acc, mkt_code, inv_name, cert_code, inv_prop, inv_status, open_date, close_date, note FROM ea_custacct.inv_acc;--2. 清空被更新的表TRUNCATE TABLE ea_custacct.inv_acc;--3. 将数据从临时表再Insert到被更新的表中INSERT INTO ea_custacct.inv_acc SELECT * FROM inv_acc_tmp;COMMIT; 2、有条件的Update操作
当对大表中的部分数据,以一定的条件进行Update时,可以利用Oracle的ROWID字段,用以下方式实现有条件的Update:
将满足Update条件的记录(包含原表中的ROWID)Insert到临时表;
再根据ROWID,将未更新的记录Inser到临时表;
清空被更新的表;
将数据从临时表Insert到被更新的表;
如下,下列Update语句:
UPDATE EI_SRCDATA.HA_JSMX_TEMP A SET END_FLAG = 1 WHERE A.QSBZ = 080 可以使用下列语句替换:
--1. 将满足Update条件的记录(包含原表中的ROWID)Insert到临时表; CREATE TABLE HA_JSMX_TEMP_TMP AS SELECT ROWID AS ROW_ID,A.* FROM EI_SRCDATA.HA_JSMX_TEMP A WHERE A.QSBZ = 080; COMMIT; --2. 再根据ROWID,将未更新的记录Insert到临时表 INSERT IN
您可能关注的文档
- ILTERF优化.docx
- [2008年成人高考高起点数学文史类试题及答案.doc
- I2013年6月上海造价员继续教育考试试题76分.doc
- I2013年5月17日“译路通”微访谈问答分类整理.doc
- I2013年5月心理咨询师考试二级理论真题与答案.doc
- [2008年度小学英语毕业水平测试模拟题.doc
- I2013年7月25昆明法检系统面试题及解析.doc
- I2013年8月护理质量考核结果反馈.doc
- I2013年9月份考试文献检索与应用第三次作业.doc
- IMac下127个常用软件.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 云南西部沿边高校边境缅甸语人才培养的校政企合作模式探索.docx VIP
- 《固定式钢梯及平台安全要求 第2部分:钢斜梯》GB 4053.2-2009.docx VIP
- 幼小科学衔接视角下家校社协同共育现状及对策研究.pdf VIP
- 2025中国中信金融资产管理股份有限公司甘肃分公司招聘笔试备考题库及答案解析.docx VIP
- 旅游警务服务规范.pdf
- 2025凉山州继续教育公需科目满分答案-深入学xi关于发展新生产力的重要论述.docx VIP
- 第三章 教育目的.ppt VIP
- 乳腺癌脑转移瘤护理查房.pptx VIP
- 眼科专科护理操作风险防范.pptx VIP
- 真菌镜检报告.pptx VIP
文档评论(0)