[20181007]12cR2 Using SQL Patch 2.txt
[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的更多相关文章
- [20181007]12cR2 Using SQL Patch.txt
[20181007]12cR2 Using SQL Patch.txt --//12cR2 已经把sql打补丁集成进入dbms_sqldiag,不是11g的 DBMS_SQLDIAG_INTERNAL ...
- [20181225]12CR2 SQL Plan Directives.txt
[20181225]12CR2 SQL Plan Directives.txt --//12C引入SQL PLAN Directives.12cR1版本会造成大量的动态取样,影响性能.许多人把OPTI ...
- [20181015]12C SQL Translation Framework.txt
[20181015]12C SQL Translation Framework.txt --//12c提供一个dba改写sql语句的可能性,实际上10g,11g之前也有一个包DBMS_ADVANCED ...
- sql 读取本地txt文件批量插入数据库
--导入 INSERT INTO [netmonsdb].[dbo].[keywordlist]([keyword]) SELECT * FROM OPENROWSET( BULK 'D:/xmsys ...
- [转帖]Oracle 12cR2使用经验
大规模升级来临,谈谈Oracle 12cR2使用经验 随着2019年2月13日,Oracle 19c (Oracle 12.2.0.3) for Exadata 版本发布,Oracle 12cR2体系 ...
- [PL/SQL]使用PL/SQL实现ORACLE的Excel格式导入导出
注:教程所使用的PL/SQL Developer版本为10版本 1.oracle导出excel格式 第一步,在pl/sql窗口查询出你想要导出的数据. 第二步,选择你想导出的数据,然后右键" ...
- 11g SQL Monitor
1,首先确认两个参数的值 SQL> show parameter statistics_level NAME TYPE VALUE ------- ...
- 使用BAT批处理执行sql语句的代码
使用BAT批处理执行sql语句的代码 有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法 1.把待执行Sql保存在一个文件,这里为2011022 ...
- SQL Server 2012大数据导入Oracle的解决方案
在实际工作中需要把SQL Server中的表导入Oracle.之前尝试过直接用SQL Server的DTS进行都没问题.但这次因为数据量在千万级所以报虚拟内存不足.最后通过SQL Server导出tx ...
随机推荐
- Spring AOP实战例子与springmvc整合不起效果的解决办法
在使用AOP之前,首先我们先了解一下什么是AOP吧.在网上很多人将AOP翻译为“面向切面编程”,什么是面向切面?与面向对象有什么区别呢? 在回答这两个问题之前,我们先要明白切面的概念. 切面由切点与增 ...
- 【干货】利用MVC5+EF6搭建博客系统(一)EF Code frist、实现泛型数据仓储以及业务逻辑
习MVC有一段时间了,决定自己写一套Demo了,写完源码再共享. PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.框架搭建 二.创建数据库 1.创建一个空的EF code fr ...
- python练习七—P2P下载
最近有些事儿比较忙,python的学习就断断续续,这个练习来得比预期的晚,不过还好,不管做什么,我都希望能认真对待,认真做好每一件事. 引入 这个练习原书中称作“使用XML-RPC进行文件共享”,题目 ...
- 【原创】空中鼠标一DMP欧拉角
正在搞六轴传感器,今天移植了MPU6050的MothionDriver的DMP固件到STM32上了,能够稳定地输出欧拉角(也就是俯仰角.航向角.横滚角)和XYZ三轴加速度值,在电脑的上位机模拟了装置的 ...
- Linux文本编辑器vim
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
- [转]Javascript中几种较为流行的继承方式
出处:http://www.jianshu.com/p/a6c005228a75 开篇 从'严格'意义上说,javascript并不是一门真正的面向对象语言.这种说法原因一般都是觉得javascrip ...
- 第一次:lesson eighty seven。
原文: A car crash. A:Is my car ready yet? B:I don't know sir,what's the number of your car? A:It's LFZ ...
- 设置防火强开机自启,以及没有成功的tomcat开机自启
防火墙 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start firewalld.serv ...
- webAPI 控制器(Controller)太多怎么办?
写过接口的同学都知道,接口会越来越多,那么控制器也会越来越多.这时候就需要根据某种业务或特性对controller进行分类然后建立文件夹. 我想到一个折中的方案:伪Areas! 在Areas文件夹下建 ...
- Go vs .NET Core 2.1
.NET Core 2.1 正式发布之际,微软团队在博客的中提到了 .NET Core 2.1 中的性能提升.这让我想起了去年 Go 语言 Iris MVC 框架作者做的 Go 与 .NET Core ...