對于經常需要truncate的表進行固定統計信息

為什么80%的碼農都做不了架構師?>>> ??hot3.png

大家做過統計的一些存儲過程可能會知道,我們經常有這類表,要先truncate它,執行插入,再在執行相關sql,這就會導致有一個時間誤差,如果在truncate和插入的中間進行了表的分析,這個統計信息是不準確的,也會影響執行計劃:

?

[sql] view plain copy print ?
  1. SQL>?select?num_rows,blocks??from?user_tables;???
  2. ??
  3. ??NUM_ROWS?????BLOCKS??
  4. ----------?----------??
  5. ?????50315????????103??
  6. ??
  7. SQL>?turncate?table?daodao_temp;??
  8. SP2-0734:?unknown?command?beginning?"turncate?t..."?-?rest?of?line?ignored.??
  9. SQL>?truncate?table?daodao_temp;??
  10. ??
  11. Table?truncated.??
  12. ??
  13. SQL>?select?num_rows,blocks??from?user_tables;???
  14. ??
  15. ??NUM_ROWS?????BLOCKS??
  16. ----------?----------??
  17. ?????50315????????103??
  18. ??
  19. SQL>?execute?dbms_stats.gather_table_stats(user,'DAODAO_TEMP');??
  20. ??
  21. PL/SQL?procedure?successfully?completed.??
  22. ??
  23. SQL>?select?num_rows,blocks??from?user_tables;???
  24. ??
  25. ??NUM_ROWS?????BLOCKS??
  26. ----------?----------??
  27. ?????????0??????????0??
SQL> select num_rows,blocks  from user_tables; NUM_ROWS     BLOCKS
---------- ----------50315        103SQL> turncate table daodao_temp;
SP2-0734: unknown command beginning "turncate t..." - rest of line ignored.
SQL> truncate table daodao_temp;Table truncated.SQL> select num_rows,blocks  from user_tables; NUM_ROWS     BLOCKS
---------- ----------50315        103SQL> execute dbms_stats.gather_table_stats(user,'DAODAO_TEMP');PL/SQL procedure successfully completed.SQL> select num_rows,blocks  from user_tables; NUM_ROWS     BLOCKS
---------- ----------0          0


?

?--這里是關鍵點,我們有個按天分析的job,如果這個時候分析了這個數據,會認為數據為0,但是之后就是錄入數據到臨時表

?

SQL> select num_rows,blocks? from user_tables;

? NUM_ROWS???? BLOCKS
---------- ----------
???????? 0????????? 0


SQL> insert into daodao_temp select object_id,object_id from dba_objects;

50315 rows created.

SQL> commit;

Commit complete.

有數據進行入庫:

好了,這個時候已經不會再執行統計信息的存儲過程了(除非第二天的時候),這個時候如果有一個sql執行,就會導致執行計劃可能錯誤了。

這種現象在月初尤其明顯,道理類似的。

我們可以對這類臨時表進行錄入數據的鎖定統計信息:

SQL> execute dbms_stats.gather_table_stats(user,'DAODAO_TEMP');

SQL> select num_rows,blocks? from user_tables;

? NUM_ROWS???? BLOCKS
---------- ----------
???? 50315??????? 103

SQL> execute DBMS_STATS.LOCK_TABLE_STATS(user,'DAODAO_TEMP');

PL/SQL procedure successfully completed.

SQL> TRUNCATE TABLE DAODAO_TEMP;

Table truncated.

SQL> execute dbms_stats.gather_table_stats(user,'DAODAO_TEMP');
BEGIN dbms_stats.gather_table_stats(user,'DAODAO_TEMP'); END;

*
ERROR at line 1:
ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: at "SYS.DBMS_STATS", line 13056
ORA-06512: at "SYS.DBMS_STATS", line 13076
ORA-06512: at line 1

這樣搜集統計信息的時候就不會搜集了,相關數據字典可以查詢這個:

SQL> select stattype_locked from user_tab_statistics where table_name ='DAODAO_TEMP';

STATT
-----
ALL

all表示鎖定了 ,空表示沒有鎖定:

如果需要解鎖,可以執行如下:

SQL> execute dbms_stats.unlock_table_stats(user,'DAODAO_TEMP');

PL/SQL procedure successfully completed.

轉載于:https://my.oschina.net/farces/blog/664334

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284961.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284961.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284961.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ArcGIS實驗教程——實驗四十一:ArcGIS區域分析統計直方圖(土地利用--坡度分級柱狀統計圖的制作)

文章目錄 一、任務描述二、實驗數據三、實驗過程一、任務描述 在實際工作中,通常需要統計不同類型的土地利用數據與坡度的關系。本實驗中以土地利用landuse和數字高程模型dem數據為例,基于ArcGIS平臺,統計了村莊、風景名勝、林地、草地、旱地等多種類型土地利用數據所占用的…

[轉]圖片格式WEBP全面解析

前言 不管是 PC 還是移動端,圖片一直是流量大頭,以蘋果公司 Retina 產品為代表的高 PPI 屏對圖片的質量提出了更高的要求,如何保證在圖片的精細度不降低的前提下縮小圖片體積,成為了一個有價值且值得探索的事情。 但如今對于 JP…

C語言試題189之編寫一個程序,按照下圖中的樣子創建數據結構,最后三個對象都是動態分配的結構。第一個對象則可能是一個靜態的指向結構的指針

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 編寫一…

基于.NetCore開發博客項目 StarBlog - (15) 生成隨機尺寸圖片

系列文章基于.NetCore開發博客項目 StarBlog - (1) 為什么需要自己寫一個博客?基于.NetCore開發博客項目 StarBlog - (2) 環境準備和創建項目基于.NetCore開發博客項目 StarBlog - (3) 模型設計基于.NetCore開發博客項目 StarBlog - (4) markdown博客批量導入基于.N…

【初探移動前端開發03】jQuery Mobile(上)

前言到目前為止,我打了幾天醬油了,這幾天落實了工作,并且看了一部電視連續劇(陳道明-手機),我很少看連續劇了,但是手機質量很高啊,各位可以看看。我們今天先學習一下jquery mobile的…

Git Bash的一些命令和配置

查看git版本號: git --version 如果是第一次使用Git,你需要設置署名和郵箱: $ git config --global user.name "用戶名" $ git config --global user.email "電子郵箱" 檢查你的設置 $ git config --list 或單獨檢查一項…

/dev/null 文件

/dev/null 文件 如果希望執行某個命令,但又不希望在屏幕上顯示輸出結果,那么可以將輸出重定向到 /dev/null: $ command > /dev/null /dev/null 是一個特殊的文件,寫入到它的內容都會被丟棄;如果嘗試從該文件讀取內容…

C語言試題190之實現函數在第一個參數中進行查找,并返回匹配第二個參數所包含的字符的數目

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現函…

強大的多列 IN 查詢語句,及數據庫支持情況。

SQL 中最強大的也是最復雜的就是查詢部分。在需要查詢多條記錄時我們一般會采用 in 關鍵字來指定要查詢的條件:SELECT * FROM t_user WHERE uid IN (1,2,3,4,5,6,7,8,9);但如果對應的數據需要兩個或更多字段才能確定,可能會寫出以下的 SQL 語句&#xff…

ArcGIS實驗教程——實驗四十二:ArcGIS密度分析(核密度、點密度、線密度)

文章目錄 一、密度分析原理二、點密度分析三、線密度分析四、核密度分析一、密度分析原理 密度分析是指根據輸入的要素數據集計算整個區域的數據聚集狀況,從而產生一個聯系的密度表面。通過密度計算,將每個采樣點的值散步到整個研究區域,并獲得輸出柵格中每個像元的密度值。…

Log4Net的WebApplication使用

一、Log4Net的WebApplication使用 1、首先使用nuget 添加log4Net 到WebApplication項目中 log4j每個符號的具體含義:%d %5p %c{1}:%L - %m%n log4j.properties# %m 輸出代碼中指定的消息# %p 輸出優先級,即DEBUG,INFO,WARN&…

C語言試題191之實現strcat函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現st…

eclipse啟動tomcat無法訪問

癥狀: tomcat在eclipse里面能正常啟動,而在瀏覽器中訪問http://localhost:8080/不能訪問,且報404錯誤。同時其他項目頁面也不能訪問。 關閉eclipse里面的tomcat,在tomcat安裝目錄下雙擊startup.bat手動啟動tomcat服務器。訪問htt:…

[轉]IntelliJ IDEA 2020.1 正式發布,15 項重大特性、官方支持中文了!

頭圖&作者 | YourBatman,CSDN博客專家 責編 | 唐小引 出品 | CSDN(ID:CSDNnews) 前言 千呼萬喚始出來!自從官方在 2020-01-20 發布了其 2020 年的 Roadmap 后,我便持續關注著、期待著 JetBrains Intell…

【ArcGIS遇上Python】ArcGIS批量為多個矢量圖層添加一個或多個字段(Add Field)案例實現

多個人在利用ArcGIS做數字化之后,需要批量為多個圖層添加一個或者多個相同的字段,挨個手動添加字段顯然不可取。ArcGIS Python提供了快速高效的批量添加字段的解決方案。本文以土地利用數據(Landuse1和Landuse2)為例,采用簡單的Python代碼實現了文中兩個矢量圖層批量添加字…

可下載!Vue3+.NET6實戰系列:通用管理后臺

.NET Framework停更3年,4月份還又停止了3個版本支持,居然還有人沒怎么接觸.NET跨平臺!真的該好好學下.NET6了,已經是不得不學了!好好看下這套《Vue3.NET6前后端分離電商實戰》免費教程,完整的源碼視頻課件全…

C語言試題192之實現strchr函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現st…

簡單團隊-爬取豆瓣電影TOP250-需求分析

1.實現登錄界面 2.搜集相關電影網址 3..按照一定條件爬取電影,實現相關代碼部分 項目步驟: 分析豆瓣電影TOP250的url規則, 編寫模塊獲取相關url分析html中有關"排名,分數,名字,簡介,導演,演員,前10條影評信息,鏈接信息"的標簽編寫將"搜集…

一個想法:成立草根技術聯盟對開發人員進行技術定級解決企業員工招聘難問題!...

背景&#xff1a; 吃飯前&#xff0c;想起了<甄嬛傳>中皇弟嘆息的一句&#xff1a;千軍易得&#xff0c;良將難尋&#xff01; 又逢CTO群里有友人讓我幫忙評估其公司的項目及技術&#xff0c;一番review code&#xff0c;估計要寫那代碼的人要落崗了~ 不由想起&#xff0…

對軟件工程這門課的收獲與總結

轉眼間八周已經過去&#xff0c;《現代軟件工程》這門課程也在這周結束了。在宋老師的教導下&#xff0c;以及在個人項目以及團隊項目的參與中我確實收獲了許多。我覺得我有必要將這八周所獲得的經驗也好&#xff0c;教訓也好都記錄下來&#xff0c;相信這也會對未來的自己有所…