`
jun_java
  • 浏览: 2797 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Oracle SQL 不知道怎么优化

阅读更多
MERGE INTO TTPVMS200 A
    USING (
             SELECT b.COM_CD, b.TIC_LINK_ID, b.PROC_BASE_DTM, b.AREA_CD, DECODE(b.OP_CNGS_LVL_CD, '0', b.TRVL_SPD, b.OP_TRVL_SPD) TRVL_SPD,
                    DECODE(DECODE(b.OP_CNGS_LVL_CD, '0', b.TRVL_SPD, b.OP_TRVL_SPD), 0, 0,
                                            CASE WHEN (ROUND((b.TRVL_DIST / (DECODE(b.OP_CNGS_LVL_CD, '0', b.TRVL_SPD, b.OP_TRVL_SPD) * y.WGHTDIST))*y.WGHTTIME,0) < 99999)
                                            THEN ROUND((b.TRVL_DIST / (DECODE(b.OP_CNGS_LVL_CD, '0', b.TRVL_SPD, b.OP_TRVL_SPD) * y.WGHTDIST))*y.WGHTTIME,0)
                                            ELSE 99999
                                            END ) TRVL_TM,
                    b.TRVL_DIST,
                    DECODE(b.OP_CNGS_LVL_CD, '0', b.CNGS_LVL_CD, b.OP_CNGS_LVL_CD) CNGS_LVL_CD, b.PATT_TRVL_SPD, b.PATT_TRVL_TM, b.PATT_CNGS_LVL_CD, b.AREA_BASE_DTM
             FROM
                  TTPCMS200 b,
                  (
                     SELECT CASE WHEN x.SRC_DIST = x.TGT_DIST
                                 THEN 1
                                 ELSE ( SELECT WGHT_CONV
                                        FROM   TCMNCD011
                                        WHERE  UNIT_TYPE_CD = 'CMN05'
                                            AND    SRC_UNIT_CD = x.SRC_DIST
                                            AND    TGT_UNIT_CD = x.TGT_DIST )
                            END  WGHTDIST,
                            CASE WHEN x.SRC_TIME = x.TGT_TIME
                                THEN 1
                                ELSE ( SELECT WGHT_CONV
                                       FROM   TCMNCD011
                                       WHERE  UNIT_TYPE_CD = 'CMN07'
                                            AND    SRC_UNIT_CD = x.SRC_TIME
                                            AND    TGT_UNIT_CD = x.TGT_TIME )
                            END WGHTTIME
                     FROM
                            (
                                SELECT a.SPD_UNIT_CD, b.CODE_PARAM_VAL1 SRC_DIST, a.DIST_UNIT_CD TGT_DIST,
                                       b.CODE_PARAM_VAL2 SRC_TIME, a.TM_UNIT_CD TGT_TIME
                                FROM   TTMNMS001 a, TCMNCD002 b
                                WHERE  a.COM_CD = 'TIC0'
                                    AND    a.COM_DEF_CD = '00'
                                    AND    b.CATG_CD = 'CMN06'
                                    AND    a.SPD_UNIT_CD = b.COMN_CD
                            ) x
                   ) y                          
                WHERE
                        b.PROC_BASE_DTM = #procBaseDtm#
                        AND
                        b.AREA_CD = CASE WHEN #areaCd# IS NULL THEN b.AREA_CD ELSE #areaCd# END
          ) B
    ON (
            A.COM_CD = B.COM_CD
            AND
            A.TIC_LINK_ID = B.TIC_LINK_ID
    )
    WHEN NOT MATCHED THEN
            INSERT(
                A.TIC_LINK_ID, A.COM_CD, A.PROC_BASE_DTM, A.AREA_CD, A.TRVL_SPD,
                A.TRVL_TM, A.TRVL_DIST,
                A.CNGS_LVL_CD, A.PATT_TRVL_SPD, A.PATT_TRVL_TM, A.PATT_CNGS_LVL_CD, A.AREA_BASE_DTM
            )
            VALUES (
                B.TIC_LINK_ID, B.COM_CD, B.PROC_BASE_DTM, B.AREA_CD, B.TRVL_SPD,                
                B.TRVL_TM,          
                B.TRVL_DIST,
                B.CNGS_LVL_CD, B.PATT_TRVL_SPD, B.PATT_TRVL_TM, B.PATT_CNGS_LVL_CD, B.AREA_BASE_DTM
            )
    WHEN MATCHED THEN
         UPDATE SET
            A.PROC_BASE_DTM = B.PROC_BASE_DTM,
            A.AREA_CD  = B.AREA_CD,
            A.TRVL_SPD = B.TRVL_SPD,
            A.TRVL_TM = B.TRVL_TM,
            A.TRVL_DIST = B.TRVL_DIST,
            A.CNGS_LVL_CD = B.CNGS_LVL_CD,
            A.PATT_TRVL_SPD = B.PATT_TRVL_SPD,
            A.PATT_TRVL_TM = B.PATT_TRVL_TM,
            A.PATT_CNGS_LVL_CD = B.PATT_CNGS_LVL_CD,
            A.AREA_BASE_DTM = B.AREA_BASE_DTM 
    ]]>



不知道怎么优化提高效率,本人想把子查询转换成内连接或者用一种方式提高效率。
最好少用Select来完成结果。
请高手来帮忙! 
分享到:
评论

相关推荐

    ORACLE SQL性能优化系列

    为了不重复解析相同的 SQL 语句,在第一次解析之后,ORACLE 将 SQL 语句存放在内存中。这块位于系统全局区域 SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。因此,...

    OracleSQL的优化.pdf

    Oracle SQL 优化 Oracle SQL 优化是数据库性能优化的关键部分。为了提高数据库的性能,我们需要从五个方面进行调整:去掉不必要的大型表的全表扫描、缓存小型表的全表扫描、检验优化索引的使用、检验优化的连接技术...

    ORACLESQL性能优化.pptx

    Oracle SQL 性能优化 Oracle SQL 性能优化是数据库管理中非常重要的一环。通过对 SQL 语句执行的过程、Oracle 优化器、表之间的关联、如何得到 SQL 执行计划、如何分析执行计划等内容的讨论,可以逐步掌握 SQL ...

    基于Oracle的SQL优化2

    基于Oracle的SQL优化

    ORACLE-SQL性能优化大全.pdf

    ### ORACLE-SQL性能优化大全知识点详述 #### 一、优化基础知识概述 - **性能管理**: - **尽早开始**:性能优化应该在项目的早期就开始考虑,而不是等到后期出现性能瓶颈时才去处理。 - **设立合适目标**:设定...

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    ORACLE_SQL性能优化(全).ppt

    【Oracle SQL性能优化】 Oracle SQL性能优化是数据库开发人员必须掌握的关键技能,它涉及到SQL语句的编写、执行过程、优化器的选择以及执行计划的分析等多个方面。在Oracle数据库环境中,优化SQL性能对于提升系统...

    Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    深入揭示OracleSQL优化与调优的原理、核心技术与思想方法 盖国强鼎力推荐! Oracle数据库的性能优化直接关系到系统的运行效率,而影响数据库性能的一个重要因素就是SQL性能问题。本书是作者十年磨一剑的成果之一...

    SQL优化 SQL优化软件 SQL优化工具

    5. **模拟测试**:在不影响生产环境的前提下,通过模拟不同负载条件来测试SQL优化的效果。 6. **自动化优化**:对于一些常见性能问题,工具可能具备自动优化功能,例如自动添加索引、调整统计信息等。 在Oracle...

    Oracle SQL语句性能优化

    Oracle SQL语句性能优化是数据库管理中的关键环节,直接影响到系统的响应速度和资源利用效率。本文将详细探讨优化Oracle SQL语句的几个核心策略。 1. 选择合适的优化器 Oracle 提供了三种优化器:RULE(基于规则)...

    oracle sql优化实战案例

    主要讲述oracle sql 的开发以及优化,对低效率的sql的优化方法和诊断技巧

    Oracle 高性能SQL优化

    Oracle数据库的高性能SQL优化是数据库管理员和开发人员关注的关键领域,因为它直接影响到系统的响应时间和整体性能。Oracle性能管理是一个持续的过程,包括主动和被动两个方面。主动性能管理强调在系统设计和开发...

    ORACLE SQL性能优化.chm

    ORACLE SQL性能优化.chm ORACLE SQL性能优化.chm ORACLE SQL性能优化.chm

    oracle_sql性能优化 文档

    Oracle SQL性能优化是数据库管理中的重要环节,旨在提高SQL查询的效率,减少资源消耗,提升系统整体性能。本文主要从三个方面介绍Oracle SQL性能优化的基本策略。 1. **选择合适的优化器** ORACLE提供了三种优化器...

    Oracle Sql语句转换成Mysql Sql语句

    4. **游标**:Oracle SQL支持游标,MySQL则不直接支持,需要使用存储过程或临时表来实现类似功能。 5. **函数和操作符**:两者内置的函数和操作符有所不同,例如Oracle的NVL对应MySQL的IFNULL,Oracle的TO_DATE对应...

    《基于Oracle的SQL优化》PDF版本下载.txt

    根据提供的文件信息,本文将对《基于Oracle的SQL优化》这一主题进行深入解析,包括但不限于SQL优化的重要性、Oracle数据库的特点以及具体的SQL优化方法等。 ### SQL优化的重要性 SQL(Structured Query Language)...

    oracle sql优化

    在Oracle数据库环境中,SQL优化是提升系统性能的关键环节。它涉及到如何有效地检索数据,减少查询时间,减轻数据库服务器的负载,以及改善整体系统的响应速度。本文将深入探讨Oracle SQL优化的相关知识点,帮助你...

    基于Oracle的SQL优化1

    基于Oracle的SQL优化

Global site tag (gtag.js) - Google Analytics