[20181007]12cR2 Using SQL Patch 2.txt

来源:https://www.cnblogs.com/lfree/archive/2018/10/07/9751746.html
-Advertisement-
Play Games

[20181007]12cR2 Using SQL Patch 2.txt--//12cR2 已經把sql打補丁集成進入dbms_sqldiag,不是11g的 DBMS_SQLDIAG_INTERNAL.I_CREATE_PATCH .做一個記錄.--//以前的鏈接:http://blog.itpu ...


[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設計沒有視圖很好的查詢相關信息.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • GitLab是一個利用 Ruby on Rails 開發的開源應用程式,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。 GitLab擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。它 ...
  • 1. 關機 shutdown h now // 立即關機 shutdown r now // 重啟 halt // 關機 reboot // 重啟 service sshd start // 開啟ssh服務,方便CRT進行連接 2. 進入桌面 startx // 進入桌面 3. 用戶管理 logou ...
  • round(數字 | 列 保留小數的位數):四捨五入。 select a.*,round(s),round(-s) from bqh4 a trunc(數字 | 列 保留小數的位數):捨棄指定位置的內容。 select a.*,trunc(s),trunc(s,2),trunc(s,-1) from ...
  • length:(字元串 | 列):求出字元串的長度; 求出bqh4表中zym列的長度。 select * from bqh4select a.*,length(zym) from bqh4 a ...
  • orcl中replace()用法: replace:(字元串 | 列):進行替換; 將bqh1表中name列帶“小”的字改成“大”: select * from bqh1select a.*,replace(name,'小','大') from bqh1 a ...
  • upper(字元串 | 列):輸入的字元串變為大寫返回; 將 bqh4表裡的zym欄位信息中含有字母的全部轉成大寫的方法: select * from bqh4 select upper(zym) from bqh4 lower:(字元串 | 列):輸入的字元串變為小寫返回; 將 bqh4表裡的zy ...
  • 1、在MySQL中要修改全局(global)變數,有兩種方法: 方法一,修改my.ini配置文件,如果要設置全局變數最簡單的方式是在my.ini文件中直接寫入變數配置,如下圖所示。重啟資料庫服務就可以使全局變數生效。 我們打開幾個mysql命令行,可以看到所有會話中的變數都生效了,如圖 方法二,在不 ...
  • 一、創建學生表 二、插入數據 三、查詢數據 (一)查詢所有數據 SELECT * FROM STUDENTS; (二)查詢出每個學員的姓名和考試成績 SELECT STU_NAME,STU_SCORES FROM STUDENTS; (三)查詢出考試不及格的學生的信息 SELECT STU_ID,S ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...