国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數據庫序列信息采集的探究

IT那活兒 / 2649人閱讀
數據庫序列信息采集的探究
點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!

問題起因

某日應用側反饋說程序報錯了,獲取的序列值插入不到表里去,超出了字段長度限制。我當時就蚌埠住了,這序列長度能有多長嘛,字段長度得設置的多小?
隨后應用就提出了要求,為了避免類似情況再次發生,要求統計全網程序賬號的序列名,最小值、最大值、當前值,使用率,是否循環,長度,長度位數是否會增加等。我心想,行吧,那就統計吧。

解決思路

這么多庫,不可能一個一個去肯定要想點省事的辦法。
于是我想的是寫個循環,每個庫生成一個序列信息的文件,然后取關鍵信息,再對比一下序列的最大值和最小值的長度,給個判斷結果,也就完成了。

問  題

查看序列視圖,發現我們所需要的信息基本都有,但是唯獨無法獲取序列的當前值,沒有當前值,使用率也無法計算,難受,難道還要查完dba_sequence再去查一次序列當前值?那就有點麻煩的感覺。
而且如果使用正常的sequence_name.CURRVAL去獲取當前值,還可能碰到序列沒有被初始化,獲取會報錯的問題,如下:
就是如果序列沒有被使用過的話,需要先通過sequence_name.NEXTVAL獲取一次值,才能使用。
這樣看的話,如果存在序列未使用的情況,循環肯定會報錯,我又不可能先去nextval一下,這會改變序列的值,萬一應用哪天又要使用怎么辦。要不就遇到這個報錯的時候,就以最小值來當做序列的當前值,感覺很不靠譜的樣子。
最后,我還是以取序列定義的方式來實現吧,取出定義,格式統一,想要的值都有,又不會對序列本身造成影響,豈不是美滋滋。

實  現

取出序列定義,剩下的就比較簡單了,我們來看一個序列的定義通常是什么樣的:
sql>set lin 200 pagesize 0 longc 9999999 long 9999999

sql>exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,SQLTERMINATOR,TRUE);

sql>select dbms_metadata.get_ddl(SEQUENCE,SEQUENCE_NAME,SEQUENCE_OWNER) STR from  dba_SEQUENCES where SEQUENCE_NAME=INDEX_ID;

--DDL內容:

CREATE SEQUENCE "SYS"."INDEX_ID"  MINVALUE 1 MAXVALUE 9999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE GLOBAL ;

CREATE SEQUENCE "SYS"."INDEX_ID"  MINVALUE 1 MAXVALUE 9999 INCREMENT BY
1 START WITH 1 NOCACHE NOORDER NOCYCLE NOKEEP NOSCALE GLOBAL ;
*唯一需要注意的地方就是:cache和nocache的序列定義有細微差別,cache的話后面會有數值,批量處理的時候需要注意一下。
通過序列定義,可以直接得出賬號,序列名,最小值、最大值、當前值,是否循環,而通過簡單處理,就可以得到序列使用率,長度以及長度是否增加等信息,于是,很快就把全網數據庫的序列信息采集完了,交差。
 

END





本文作者:許 珣

本文來源:IT那活兒(上海新炬王翦團隊)


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129531.html

相關文章

  • [譯] 存儲和處理時間序列數據(“Time Series Databases”第三章)

    摘要:并且這種格式沒有事先對時間序列的數量做任何限制。使用格式來存儲時間序列數據的兩種可能的。其中存放了時間列序列列和數值列三列。隨著數據規模的繼續增長,基于的應用程序越來越不適合處理這樣規模的時間序列數據了。 就像我們在前一章提到的,一個時間序列是一系列數值,每個數值都伴隨著一個時間值,代表數據被記錄時的時間。時間序列數據存入后就很少再需要修改了,查詢時經常是查詢一個連續時間段的數據,也可...

    EastWoodYang 評論0 收藏0
  • 容器監控實踐—Prometheus基本架構

    摘要:根據配置文件,對接收到的警報進行處理,發出告警。在默認情況下,用戶只需要部署多套,采集相同的即可實現基本的。通過將監控與數據分離,能夠更好地進行彈性擴展。參考文檔本文為容器監控實踐系列文章,完整內容見 系統架構圖 1.x版本的Prometheus的架構圖為:showImg(https://segmentfault.com/img/remote/1460000018372350?w=14...

    gghyoo 評論0 收藏0
  • 容器監控實踐—Prometheus基本架構

    摘要:根據配置文件,對接收到的警報進行處理,發出告警。在默認情況下,用戶只需要部署多套,采集相同的即可實現基本的。通過將監控與數據分離,能夠更好地進行彈性擴展。參考文檔本文為容器監控實踐系列文章,完整內容見 系統架構圖 1.x版本的Prometheus的架構圖為:showImg(https://segmentfault.com/img/remote/1460000018372350?w=14...

    elina 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<