zoukankan      html  css  js  c++  java
  • Oracle SQL硬解析和软解析示例

    Oracle的软解析会把预处理的sql放到SGA(共享池)中,避免每次都让oracle做优化和生成查询计划;在Java程序中通常使用预处理语句,不让数据库走硬解析;
     
    下面是使用绑定变量的软解析和硬解析示例:
    CREATE OR REPLACE PROCEDURE proc1
    AS
    BEGIN
      FOR i IN 1..10000
      LOOP
       -- 绑定变量,软解析
        EXECUTE IMMEDIATE 'insert into t values(:x)' USING i;
      END LOOP;
    END;
    /
    
    
    -- 硬解析
    EXECUTE IMMEDIATE 'insert into t values('||i||')';
    

     

    在Oracle中可以通过下面的SQL检查哪些业务SQL没有绑定变量,导致走了硬解析耳没有发挥SQL的最佳性能:

    SELECT distinct to_char(FORCE_MATCHING_SIGNATURE) FORCE_MATCHING_SIGNATURE, SQL_TEXT
    FROM (select SQL_ID,
    SQL_TEXT,
    Q.FORCE_MATCHING_SIGNATURE FORCE_MATCHING_SIGNATURE,
    row_number() over(partition by Q.FORCE_MATCHING_SIGNATURE order by Q.FORCE_MATCHING_SIGNATURE) S_ROW_NUM
    FROM V$SQL Q
    WHERE FORCE_MATCHING_SIGNATURE > 100
    and parsing_schema_name not in
    ('MGMT_VIEW',
    'SYSMAN',
    'MDDATA',
    'OLAPSYS',
    'ORDSYS',
    'ORDPLUGINS',
    'SI_INFORMTN_SCHEMA',
    'MDSYS',
    'ANONYMOUS',
    'XDB',
    'CTXSYS',
    'DMSYS',
    'EXFSYS',
    'WMSYS',
    'ORACLE_OCM',
    'DBSNMP',
    'TSMSYS',
    'DIP',
    'OUTLN',
    'SYS',
    'SYSTEM'))
    WHERE S_ROW_NUM BETWEEN 105 AND 107
    ORDER BY FORCE_MATCHING_SIGNATURE;
    ★★★★★★好记性不如烂笔头★★★★★★
  • 相关阅读:
    兼容性测试中如何切换和管理多个JDK版本
    Win10的分辨率问题
    sql和access中截取字符串的区别
    ArcGIS制图之Sub Points点抽稀
    Office版本问题0x80029C4A
    ArcGIS制图之Maplex自动点抽稀
    ArcGIS制图之Subset工具点抽稀
    .NET破解之100%营销QQ辅助软件【更新】
    Office2016体验
    Log4net中的调错
  • 原文地址:https://www.cnblogs.com/fubinhnust/p/9925884.html
Copyright © 2011-2022 走看看