[20181007]12cR2 Using SQL Patch 2.txt

--//12cR2 已经把sql打补丁集成进入dbms_sqldiag,不是11g的 DBMS_SQLDIAG_INTERNAL.I_CREATE_PATCH .做一个记录.
--//以前的链接:http://blog.itpub.net/267265/viewspace-751900/=>[20121231]给sql打补丁.txt
--//想看看打补丁的提示写入那张表.奇怪没有地方显示hint_text信息.

1.环境:
SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.2.0.1.0     Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production              0

SCOTT@test01p> select /*+ full(dept) */ * from dept where deptno=10;
           DEPTNO DNAME                LOC
----------------- -------------------- -------------
               10 ACCOUNTING           NEW YORK

--//sql_id=g0qybdz1796cn

SCOTT@test01p> select text_vc c100 from dba_views where view_name='DBA_SQL_PATCHES';
C100
----------------------------------------------------------------------------------------------------
SELECT
    so.name, so.category, so.signature, st.sql_text,
    ad.created, ad.last_modified, ad.description,
    DECODE(BITAND(so.flags, 1), 1, 'ENABLED', 'DISABLED'),
    DECODE(BITAND(sq.flags, 1), 1, 'YES', 'NO'),
    ad.task_id, ad.task_exec_name, ad.task_obj_id, ad.task_fnd_id,
    ad.task_rec_id
FROM
    sqlobj$        so,
    sqlobj$auxdata ad,
    sql$text       st,
    sql$           sq
WHERE
    so.signature = st.signature AND
    so.signature = ad.signature AND
    so.category  = ad.category  AND
    so.signature = sq.signature AND
    so.obj_type = 3 AND
    ad.obj_type = 3

--//我查询这些sqlobj$,sqlobj$auxdata,sql$text,sql$表,没有对应的提示信息.

2.跟踪看看:

SCOTT@test01p> @ 10046on 12
Session altered.

SCOTT@test01p> exec :patch_name := dbms_sqldiag.create_sql_patch(sql_id=>'g0qybdz1796cn',hint_text=>'result_cache INDEX_RS_ASC(@"SEL$1" "DEPT"@"SEL$1" ("DEPT"."DEPTNO"))');
PL/SQL procedure successfully completed.

SCOTT@test01p> @ 10046off
Session altered.

--//查看跟踪文件可以发现如下,检索result_cache 就可以发现如下:
PARSING IN CURSOR #31521616 len=1500 dep=1 uid=0 oct=189 lid=0 tim=9303948110 hv=2730219038 ad='7ff16b8ca68' sqlid='2azfx4fjbrphy'

MERGE /*+ INDEX(dest (signature category obj_type plan_id)) */
     INTO  sqlobj$data dest
     USING (SELECT :1 signature
                  ,:2 category
                  ,:3 obj_type
                  ,:4 plan_id
              FROM DUAL) src
        ON (    dest.signature = src.signature
            AND dest.category = src.category
            AND dest.obj_type = src.obj_type
            AND dest.plan_id = src.plan_id)
WHEN MATCHED
THEN
   UPDATE SET comp_data = :5
   DELETE
           WHERE     signature = :6
                 AND category = :7
                 AND obj_type = :8
                 AND plan_id = :9
                 AND :10 = 0
WHEN NOT MATCHED
THEN
   INSERT
              (
                 signature
                ,category
                ,obj_type
                ,plan_id
                ,comp_data
                ,spare1
                ,spare2
              )
       VALUES
              (
                 :11
                ,:12
                ,:13
                ,:14
                ,:15
                ,NULL
                ,NULL
              )
        WHERE (:16 > 0)

--//为了好看,我做了格式化处理.
END OF STMT
PARSE #31521616:c=0,e=548,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,plh=0,tim=9303948110
BINDS #813829336:

Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=00 fl2=1000001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=2eca1bc8  bln=22  avl=03  flg=05
  value=336

...
 Bind#14
  oacdty=01 mxl=128(122) mxlc=00 mal=00 scl=00 pre=00
  oacflg=21 fl2=0000 frm=01 csi=852 siz=0 off=488
  kxsbbbfp=2ed21750  bln=128  avl=122  flg=01
  value="<outline_data><hint><![CDATA[result_cache INDEX_RS_ASC(@"SEL$1" "DEPT"@"SEL$1" ("DEPT"."DEPTNO"))]]></hint></outline_data>"
 Bind#15
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=01 fl2=0000 frm=00 csi=00 siz=0 off=616
  kxsbbbfp=2ed217d0  bln=22  avl=03  flg=01
  value=122
EXEC #31521616:c=15600,e=258743,p=0,cr=148,cu=6,mis=1,r=1,dep=1,og=1,plh=4253447951,tim=9304207021
STAT #31521616 id=1 cnt=0 pid=0 pos=1 obj=0 op='MERGE  SQLOBJ$DATA (cr=1 pr=0 pw=1 str=1 time=237554 us)'
STAT #31521616 id=2 cnt=1 pid=1 pos=1 obj=0 op='VIEW  (cr=1 pr=0 pw=0 str=1 time=23 us)'
STAT #31521616 id=3 cnt=1 pid=2 pos=1 obj=0 op='NESTED LOOPS OUTER (cr=1 pr=0 pw=0 str=1 time=19 us cost=2 size=1066 card=1)'
STAT #31521616 id=4 cnt=1 pid=3 pos=1 obj=0 op='VIEW  (cr=0 pr=0 pw=0 str=1 time=4 us cost=2 size=62 card=1)'
STAT #31521616 id=5 cnt=1 pid=4 pos=1 obj=0 op='FAST DUAL  (cr=0 pr=0 pw=0 str=1 time=1 us cost=2 size=0 card=1)'
STAT #31521616 id=6 cnt=0 pid=3 pos=2 obj=341 op='INDEX UNIQUE SCAN SQLOBJ$DATA_PKEY (cr=1 pr=0 pw=0 str=1 time=12 us cost=0 size=1004 card=1)'
CLOSE #31521616:c=0,e=10,dep=1,type=0,tim=9304208195

--//表SQLOBJ$DATA

SCOTT@test01p> @ pt2 'select * from sys.SQLOBJ$DATA'
          ROW_NUM           COL_NUM COL_NAME             COL_VALUE
----------------- ----------------- -------------------- ----------------------------------------------------------------------------------------------------
                1                 1 SIGNATURE            16064551385586871472
                                  2 CATEGORY             DEFAULT
                                  3 OBJ_TYPE             3
                                  4 PLAN_ID              0
                                  5 COMP_DATA            <outline_data><hint><![CDATA[result_cache INDEX_RS_ASC(@"SEL$1" "DEPT"@"SEL$1" ("DEPT"."DEPTNO"))]]>

--//查询依赖关系:
SCOTT@test01p> @ pt2 'select * from sys.SQLOBJ$DATA_DATAPUMP'
          ROW_NUM           COL_NUM COL_NAME             COL_VALUE
----------------- ----------------- -------------------- ----------------------------------------------------------------------------------------------------
                1                 1 SIGNATURE            16064551385586871472
                                  2 CATEGORY             DEFAULT
                                  3 OBJ_TYPE             3
                                  4 PLAN_ID              0
                                  5 COMP_DATA            <outline_data><hint><![CDATA[result_cache INDEX_RS_ASC(@"SEL$1" "DEPT"@"SEL$1" ("DEPT"."DEPTNO"))]]>

SCOTT@test01p> select text_vc c100 from dba_views where view_name='SQLOBJ$DATA_DATAPUMP';
C100
----------------------------------------------------------------------------------------------------
SELECT "SIGNATURE","CATEGORY","OBJ_TYPE","PLAN_ID","COMP_DATA","SPARE1","SPARE2" FROM sqlobj$data

--//很奇怪,oracle设计没有视图很好的查询相关信息.

[20181007]12cR2 Using SQL Patch 2.txt的更多相关文章

  1. [20181007]12cR2 Using SQL Patch.txt

    [20181007]12cR2 Using SQL Patch.txt --//12cR2 已经把sql打补丁集成进入dbms_sqldiag,不是11g的 DBMS_SQLDIAG_INTERNAL ...

  2. [20181225]12CR2 SQL Plan Directives.txt

    [20181225]12CR2 SQL Plan Directives.txt --//12C引入SQL PLAN Directives.12cR1版本会造成大量的动态取样,影响性能.许多人把OPTI ...

  3. [20181015]12C SQL Translation Framework.txt

    [20181015]12C SQL Translation Framework.txt --//12c提供一个dba改写sql语句的可能性,实际上10g,11g之前也有一个包DBMS_ADVANCED ...

  4. sql 读取本地txt文件批量插入数据库

    --导入 INSERT INTO [netmonsdb].[dbo].[keywordlist]([keyword]) SELECT * FROM OPENROWSET( BULK 'D:/xmsys ...

  5. [转帖]Oracle 12cR2使用经验

    大规模升级来临,谈谈Oracle 12cR2使用经验 随着2019年2月13日,Oracle 19c (Oracle 12.2.0.3) for Exadata 版本发布,Oracle 12cR2体系 ...

  6. [PL/SQL]使用PL/SQL实现ORACLE的Excel格式导入导出

    注:教程所使用的PL/SQL Developer版本为10版本 1.oracle导出excel格式 第一步,在pl/sql窗口查询出你想要导出的数据. 第二步,选择你想导出的数据,然后右键" ...

  7. 11g SQL Monitor

    1,首先确认两个参数的值 SQL> show parameter statistics_level NAME                     TYPE     VALUE ------- ...

  8. 使用BAT批处理执行sql语句的代码

    使用BAT批处理执行sql语句的代码 有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法 1.把待执行Sql保存在一个文件,这里为2011022 ...

  9. SQL Server 2012大数据导入Oracle的解决方案

    在实际工作中需要把SQL Server中的表导入Oracle.之前尝试过直接用SQL Server的DTS进行都没问题.但这次因为数据量在千万级所以报虚拟内存不足.最后通过SQL Server导出tx ...

随机推荐

  1. 7-Flink的分布式缓存

    分布式缓存 Flink提供了一个分布式缓存,类似于hadoop,可以使用户在并行函数中很方便的读取本地文件,并把它放在taskmanager节点中,防止task重复拉取. 此缓存的工作机制如下:程序注 ...

  2. Go语言学习笔记(五) [函数]

    日期:2014年7月29日   1.函数定义:func (p type) funcname(q int) (r,s int) {return 0,0 }     func: 保留字,用于定义一个函数 ...

  3. [PKUWC2018] Slay the spire

    Description 现在有 \(n\) 张强化牌和 \(n\) 张攻击牌: 攻击牌:打出后对对方造成等于牌上的数字的伤害. 强化牌:打出后,假设该强化牌上的数字为 \(x\),则其他剩下的攻击牌的 ...

  4. ERP,ARP瘦身并如何删除。

    ERP,ARP瘦身 场景:由于ARP,ERP运行近10年,日志文件多而杂.清理ERP的日志文件有利于ERP的迁移. 1)ERP的相关日志文件如下: /ora1159/prod/prodcomn/adm ...

  5. linux 常用命令集合-命令导图

    这几天画了几张导图,自己熟悉命令,并记录总结一下,还有很多没写上去,在慢慢完善把. 1.帮助命令 2.文件搜索命令 3.用户管理 4.权限管理 5.文件处理类 6.压缩解压 7.网络配置类 8.关机重 ...

  6. JavaScript 系列博客(七)

    JavaScript 系列博客(七) 前言 本篇博客介绍页面节点概念.文档结构以及如何使用 js 操作文档节点还有事件 target 以及 BOM 操作. 节点 dom与dom属性 // DOM: 文 ...

  7. spark之scala程序开发(集群运行模式):单词出现次数统计

    准备工作: 将运行Scala-Eclipse的机器节点(CloudDeskTop)内存调整至4G,因为需要在该节点上跑本地(local)Spark程序,本地Spark程序会启动Worker进程耗用大量 ...

  8. [转]Node.js框架对比:Express/Koa/Hapi

    本文转自:https://www.cnblogs.com/souvenir/p/6039990.html 本文翻译自: https://www.airpair.com/node.js/posts/no ...

  9. 在JS方法中返回多个值的三种方法(转载)

    来源:https://www.cnblogs.com/gxsyj/p/6004574.html 在使用JS编程中,有时需要在一个方法返回两个个或两个以上的数据,用下面的几种方法都可以实现: 1 使用数 ...

  10. 29.QT-自定义窗口拖动、自定义QToolButton/QPushButton开关按钮、界面阴影,声音等总结

    自定义窗口及拖动 1.自定义无边框窗口时,需要将窗口标志设为: Qt::FramelessWindowHint |Qt::WindowSystemMenuHint | Qt::WindowMinMax ...