-
oracle merge 性能优化10
更新一个350w条数据的表时,效率极低,代码如下
Fdm_Accum_Dpac有60多个字段,分别是一些维度字段和一个月的日期横向排列,排列两遍,
字段大概是A01,A02...A31,B01,B02...B31,每天更新对应日期的两个字段,例如10号就更新A10和B10,
Account_Number是有索引的,
Src子查询中T03_Private_Alter_Agmt是个500w数据的表,Pdm_Src2pdm_Stacd_Map是个很小的配置表,Src的查询结果大概250w左右的数据量,
刚开始的几天,执行很快,大概十几分钟,现在越来越慢,已经执行到2-3个小时了,
merge的时候我用了并行,麻烦帮忙分析一下,为什么需要这么长的时间,如何优化,感谢Merge /*+parallel(des, 24) use_hash(des, src)*/ Into Fdm_Accum_Dpac Des Using (Select /*+full(t2)*/ T1.Agmt_Id Account_Number, T1.Org_Id Org_Unit_Id, T2.Des_Code Iso_Currency_Cd, T1.Subj_Contr_Id Gl_Account_Id, T1.Open_Acct_Dt Account_Open_Date, Nvl(T1.Balance, 0) Cur_Book_Bal, 0 Yearlastbal From Ods.T03_Private_Alter_Agmt T1 Left Join Pdm_Src2pdm_Stacd_Map T2 On T1.Curr_Id = T2.Src_Code And T2.Src_Data_Flag = 'KERN' Where T1.Balance <> 0) Src On (Src.Account_Number = Des.Account_Number And Des.Acctdt = '20121001') When Matched Then Update Set Des.Lastbl18 = Src.Cur_Book_Bal, Des.Dyacml18 = Src.Cur_Book_Bal + Nvl(Des.Dyacml17, 0) When Not Matched Then Insert (Des.Account_Number, Des.Acctdt, Des.Org_Unit_Id, Des.Iso_Currency_Cd, Des.Gl_Account_Id, Account_Open_Date, Des.Lastbl18, Des.Dyacml18) Values (Src.Account_Number, '20121001', Src.Org_Unit_Id, Src.Iso_Currency_Cd, Src.Gl_Account_Id, Src.Account_Open_Date, Src.Cur_Book_Bal, Src.Cur_Book_Bal + 0)
2012年11月01日 15:21
目前还没有答案
相关推荐
### Oracle数据库性能优化浅析 #### 一、引言 SQL作为数据库查询语言,其编写质量直接影响着数据库系统的整体性能。对于Oracle数据库而言,优化SQL查询不仅能够提高查询效率,还能减少系统资源消耗,进而提升整个...
Oracle SQL性能优化规范是一套指导原则,旨在帮助数据库管理员和开发人员提高SQL查询在Oracle数据库中的执行效率。这些规范考虑了数据库设计、查询构造、索引使用和优化器策略等多个方面,以确保数据检索的速度和...
### Oracle性能优化培训知识点 #### 一、Oracle性能优化概览 在Oracle性能优化过程中,主要涉及以下几个方面:磁盘I/O优化、内存优化、CPU优化以及查询优化等。通过这些方面的综合调整与优化,可以显著提升Oracle...
Oracle 大数据量操作性能优化 Oracle大数据量操作性能优化是指在处理大量数据时,如何提高 Oracle 数据库的性能。该优化技术涉及到多个方面,包括分区、Direct Insert、并行和排序处理等。 分区是 Oracle 中的一种...
Oracle性能优化是数据库管理员和开发人员关注的重要领域,特别是在处理大量数据和复杂查询时。本文将深入探讨Oracle性能优化文档中的关键知识点,帮助你更好地理解和应用这些技术。 首先,我们来了解一下Oracle性能...
Oracle SQL性能优化是一个复杂且关键的领域,涉及到多个层面的技术策略。以下是一些核心知识点的详细解释: 1. **选择适合的优化器** ORACLE提供了三种优化器:基于规则(RULE)、基于成本(COST)和选择性...
### Oracle死锁原因及解决办法 #### 一、Oracle死锁概述 在Oracle数据库系统中,死锁是一种常见的并发问题,它会导致多个事务之间互相等待对方释放资源而无法继续执行,最终导致整个系统的运行效率降低甚至停滞。...
Oracle SQL性能优化是数据库管理中的关键环节,它涉及到如何提高SQL查询的速度,降低资源消耗,提升系统的整体响应时间和效率。以下是对文档中提及的关键知识点的详细说明: 1. **高效SQL的特点**: - **简洁性**...
虽然实际的执行计划可能会根据Oracle版本、环境等因素有所变化,但通过理解这些概念和原理,数据库管理员和开发人员可以更好地优化SQL语句和数据库性能。 需要注意的是,Oracle的源代码不公开,因此对执行计划的...
在处理大型数据库,尤其是当数据量达到百万级甚至千万级时,Oracle数据库的性能优化显得尤为重要。在本篇文档中,作者详细总结了在实际项目中针对Oracle数据库的update语句优化的四种方案。以下是对这四种方案的知识...
第1章 引起数据库性能问题的因素 1 1.1 软件设计对数据库的影响 1 1.1.1 软件架构设计对数据库性能的影响 1 1.1.2 软件代码的编写对数据库性能的影响 2 1.2 数据库的设计 8 1.2.1 oltp数据库 9 1.2.2 olap数据库 10 ...
在Oracle数据库系统中,SQL(Structured Query Language)语句的性能优化是提升系统效率的关键环节。这本"Oracle数据库SQL语句的性能优化.pdf"很可能提供了深入的指导,旨在帮助数据库管理员和开发人员理解如何写出...
Oracle 9i是一款由甲骨文公司开发的关系型数据库管理系统,其在性能优化和系统调整方面具有丰富的功能和策略。本文将深入探讨Oracle 9i的优化设计与系统调整的关键知识点,帮助你提升数据库的运行效率和稳定性。 一...
【Oracle基础体系结构】 Oracle数据库是企业级的关系型数据库...总的来说,Oracle的基础体系结构和性能优化是一个深度广泛的话题,涵盖了许多技术和策略,理解和掌握这些知识对于数据库管理员和开发人员来说至关重要。
第1章 引起数据库性能问题的因素 1 1.1 软件设计对数据库的影响 1 1.1.1 软件架构设计对数据库性能的影响 1 1.1.2 软件代码的编写对数据库性能的影响 2 1.2 数据库的设计 8 1.2.1 oltp数据库 9 1.2.2 olap数据库 10 ...
Oracle的MERGE语句是一种强大的数据操作...它能够减少事务中的网络往返,提高并发处理能力,对于优化数据库性能具有重要意义。在处理复杂的业务逻辑,尤其是涉及到数据同步和更新的场景时,MERGE语句是不可或缺的工具。
Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询...了解 Oracle 优化器的常用概念对于提高查询效率和数据库性能至关重要。
Oracle 数据库作为一款高性能的数据库管理系统,其性能优化对于确保系统高效稳定运行至关重要。性能调整涉及到多个层面,包括但不限于应用程序设计、数据库结构、操作系统配置等。下面将详细介绍性能调整的相关概念...
在Oracle数据库中,SQL优化是一个至关重要的环节,它能够显著提高数据库查询的效率和性能。本文将详细介绍Oracle SQL中的“提示”(HINT)技术,这是Oracle SQL优化中使用的一项辅助手段,通过为查询提供额外的优化...