bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Oracle如何通過注釋改變執行計劃-創新互聯

小編給大家分享一下Oracle如何通過注釋改變執行計劃,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創新互聯專注于文成網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供文成營銷型網站建設,文成網站制作、文成網頁設計、文成網站官網定制、重慶小程序開發服務,打造文成網絡公司原創品牌,更為您提供文成網站排名全網營銷落地服務。

Oracle 通過注釋改變執行計劃

一:問題現象

T_XXX表同步延時1小時,其它表同步速度正常;

主要慢在同步時的一個delete T_XXX語句上,單條執行耗時12秒;

二:問題原因

T_XXX表存在唯一性索引,理論上速度很快;

查看T_XXX表存在delete行級觸發器,查看觸發器邏輯,發現觸發器內一個update語句特別慢;

UPDATE CHENJCH.T_CHENJCH_RISK ..where  RISK_ID ....

查看執行計劃,update語句走全表掃描,速度很慢,通過hint強制走主鍵索引,速度特別快;

為什么執行計劃不走主鍵?

查看T_CHENJCH_RISK表統計信息顯示表有0行數據,但是實際上有200萬行數據;

由于數據同步時T_CHENJCH_RISK表存在大量的delete/update/insert操作,上次收集統計信息時正好這個表里沒有數據,但是經過幾天的數據同步后,表里的數據量發生了很大變化,統計信息也不是實時進行收集,最終導致生成較差的執行計劃;

解決方案:

嘗試刪除T_CHENJCH_RISK表統計信息,讓數據庫通過動態取樣實時的收據信息,但是執行計劃沒有變,還是走全表掃描,速度沒有提高;

begin

  dbms_stats.delete_table_stats(ownname => 'CHENJCH', tabname => 'T_CHENJCH_RISK');

end;

嘗試重新收集T_CHENJCH_RISK表統計信息,讓數據庫通過動態取樣實時的收據信息,但是執行計劃沒有變,還是走全表掃描,速度沒有提高;

begin

  DBMS_STATS.GATHER_TABLE_STATS('CHENJCH',

                                'T_CHENJCH_RISK',

                                estimate_percent => 100,

                                method_opt       => 'FOR ALL INDEXED COLUMNS',

                                degree           => 6,

                                CASCADE          => TRUE);

end;

為什么執行計劃沒有變?

(數據庫版本Oracle 12.2.0.1.0)

因為SQL語句存在綁定變量,SQL文本沒有變,導致執行計劃也沒有發生變化;

通過對表T_CHENJCH_RISK添加和刪除注釋,可以讓數據庫重新生成執行計劃;

comment on column CHENJCH.T_CHENJCH_RISK.RISK_ID   is  'PK_T_CHENJCH_RISK';

comment on column CHENJCH.T_CHENJCH_RISK.RISK_ID   is  '';

查看新生成的執行計劃,T_CHENJCH_RISK已經開始走主鍵索引了,速度有明顯提升;

以上是“Oracle如何通過注釋改變執行計劃”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯-成都網站建設公司行業資訊頻道!

新聞名稱:Oracle如何通過注釋改變執行計劃-創新互聯
轉載注明:http://vcdvsql.cn/article36/dsohsg.html

成都網站建設公司_創新互聯,為您提供外貿建站響應式網站網站內鏈定制開發營銷型網站建設虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設