版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在不影響Oracle生產(chǎn)庫(kù)性能情況下,評(píng)估整庫(kù)大小
最近碰到一個(gè)小問題:一TB級(jí)的Oracle生產(chǎn)庫(kù),因?yàn)橐邤?shù)據(jù)遷移,需要先行評(píng)估整個(gè)庫(kù)的遷移數(shù)據(jù)量大小,但又不得影響生產(chǎn)庫(kù)運(yùn)行性能。如何搞?大家都知道,expdp數(shù)據(jù)泵有兩個(gè)很好用的參數(shù)ESTIMATE和ESTIMATE_ONLY,此兩個(gè)參數(shù)可以保證在不真正發(fā)起邏輯備份的情況下評(píng)估整個(gè)遷移生產(chǎn)庫(kù)的大小。今天念叨下這個(gè)小問題。這里使用$expdp-help先看expdp的ESTIMATE和ESTIMATE_ONLY兩個(gè)參數(shù)的介紹:ESTIMATECalculatejobestimates.Validkeywordvaluesare:[BLOCKS]andSTATISTICS.
ESTIMATE_ONLYCalculatejobestimateswithoutperformingtheexport.ESTIMATE默認(rèn):blocks指定計(jì)算每張表使用磁盤空間的方法ESTIMATE=[BLOCKS|STATISTICS]1.BLOCKS-通過塊數(shù)和塊大小計(jì)算
2.STATISTICS-每張表的統(tǒng)計(jì)信息計(jì)算Expdp可計(jì)算導(dǎo)出數(shù)據(jù)大小容量,一種是通過數(shù)據(jù)塊數(shù)量、一種是通過統(tǒng)計(jì)信息中記錄的內(nèi)容估算。通過expdp的參數(shù)ESTIMATE_ONLY和ESTIMATE來(lái)評(píng)估導(dǎo)出的性能,ESTIMATE_ONLY僅作評(píng)估不會(huì)導(dǎo)出數(shù)據(jù),通過ESTIMATE參數(shù)指定statistics和blocks參數(shù)來(lái)測(cè)試兩者的差異。以下是Oracle中的測(cè)試數(shù)據(jù)輸出,在此版本中,我們來(lái)看下ESTIMATE的statistics和blocks兩個(gè)參數(shù)各自評(píng)估大小和用時(shí)。兩條命令如下:$expdp
\'/
as
sysdba\'
ESTIMATE_ONLY=y
FULL=y
ESTIMATE=blocks$expdp\'/assysdba\'ESTIMATE_ONLY=yFULL=yESTIMATE=statistics具體執(zhí)行如下:如上可以看出,使用ESTIMATE=blocks評(píng)估出來(lái)的大小為2599.GB,耗時(shí):00:02:50;接下來(lái)再看ESTIMATE=statistics方式。命令如下:如上,使用ESTIMATE=STATISTICS評(píng)估出來(lái)的大小為2132.GB,耗時(shí):00:04:40;可以看出,兩種方式統(tǒng)計(jì)的大小不一樣,為啥?分析推斷:ESTIMATE的默認(rèn)方式是blocks。個(gè)人理解為:Oracle的塊大小默認(rèn)為8KB,直接對(duì)庫(kù)使用的塊數(shù)計(jì)算使用量,簡(jiǎn)單明了,但考慮到塊有高水位線、碎片等因素,故統(tǒng)計(jì)不精確。而STATISTICS方式因計(jì)算的是對(duì)每張表的實(shí)際使用情況,故更為精確。但STATISTICS的方式也非很精確,原因?yàn)椋?.該方式只是對(duì)表做統(tǒng)計(jì),沒有對(duì)索引、列、系統(tǒng)做統(tǒng)計(jì),2.一個(gè)表中被修改的行數(shù)超過stale_percent(缺省值10%)時(shí)才會(huì)認(rèn)為這個(gè)表的統(tǒng)計(jì)數(shù)據(jù)過時(shí),需要重新搜集。注意:如果壓縮了表,那么使用ESTIMATE=BLOCKS計(jì)算的值時(shí)不準(zhǔn)確的,這個(gè)時(shí)候就應(yīng)該使用ESTIMATE=STATISTICS。推薦:使用ESTIMATE的默認(rèn)方式blocks進(jìn)行估算,原因很簡(jiǎn)單,估值按最大值估算申請(qǐng)空間更靠譜。為了加深理解,這里介紹下Oracle統(tǒng)計(jì)信息收集大家都知道,Oracle較優(yōu)執(zhí)行計(jì)劃的挑選是基于CBO(costbasedoptimized)判斷,而CBO對(duì)哪個(gè)執(zhí)行計(jì)劃較優(yōu)的判斷是基于統(tǒng)計(jì)信息。優(yōu)化器統(tǒng)計(jì)范圍包含:1.表統(tǒng)計(jì):行數(shù),塊數(shù),行平均長(zhǎng)度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;2.列統(tǒng)計(jì):列中唯一值的數(shù)量(NDV),NULL值的數(shù)量,數(shù)據(jù)分布;DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NULLS,HISTOGRAM;3.索引統(tǒng)計(jì):葉塊數(shù)量,等級(jí),聚簇因子;DBA_INDEXES:LEAF_BLOCKS,CLUSTERING_FACTOR,BLEVEL;4.系統(tǒng)統(tǒng)計(jì):I/O性能與使用率;CPU性能與使用率;存儲(chǔ)在aux_stats$中,需要使用dbms_stats收集,I/O統(tǒng)計(jì)在X$KCFIO中;查詢表上一次收集統(tǒng)計(jì)信息的時(shí)間:SQL>selectowner,table_name,last_analyzedfromdba_tableswhereowner='SCOTT';Oracle中如何搜集統(tǒng)計(jì)信息?主要有2種方法:方式1:analyze語(yǔ)句analyze可以用來(lái)收集表,索引,列以及系統(tǒng)的統(tǒng)計(jì)信息和直方圖,以下為一些典型用法:從語(yǔ)法可以看出,只有指定列統(tǒng)計(jì)信息收集時(shí),才會(huì)收集相關(guān)列的直方圖,此外收集直方圖時(shí)for子句還可以加size子句,size的取值范圍是1-254,默認(rèn)值是75,表示直方圖的buckets的最大數(shù)目。而dbms_stats包的size選擇則有:數(shù)字|auto|repeat|skewonly選項(xiàng),但analyze的size只能是數(shù)字。關(guān)于直方圖介紹:Ahistogramisaspecialtypeofcolumnstatisticthatprovidesmoredetailedinformationaboutthedatadistributioninatablecolumn.Ahistogramsortsvaluesinto"buckets,"asyoumightsortcoinsintobuckets.直方圖就是一種特殊的列統(tǒng)計(jì)信息,只有列才有直方圖。用于查看analyze后統(tǒng)計(jì)信息的SQL;需要注意的一點(diǎn)是fortable選項(xiàng)并不只收集表統(tǒng)計(jì)信息,將列和索引的統(tǒng)計(jì)信息一塊收集了。oracle會(huì)監(jiān)控所有表的DML活動(dòng)并在SGA中進(jìn)行記錄。監(jiān)控的信息會(huì)定時(shí)的刷新到磁盤且可以通過*_tab_modifications視圖來(lái)查看??烧{(diào)用dbms_stats.flush_database_monitoring_info過程來(lái)手動(dòng)刷新這些數(shù)據(jù)。如果想在查詢時(shí)得到最新信息(在所有統(tǒng)計(jì)數(shù)據(jù)收集之前內(nèi)部監(jiān)控?cái)?shù)據(jù)會(huì)被刷新)??赏ㄟ^查詢user_tab_statistics視圖中的stale_stats列來(lái)查看哪個(gè)表的統(tǒng)計(jì)數(shù)據(jù)過時(shí)。表的stale_stats被設(shè)置為NO,統(tǒng)計(jì)數(shù)據(jù)是最新的。表的stale_stats被設(shè)置為YES,統(tǒng)計(jì)數(shù)據(jù)是過時(shí)的,表的stale_stats沒有被設(shè)置說(shuō)明丟失統(tǒng)計(jì)數(shù)據(jù)。方式2:調(diào)用dbms_stats包dbms_stats中負(fù)責(zé)收集統(tǒng)計(jì)信息的幾個(gè)存儲(chǔ)過程:GATHER_DATABASE_STATS--Thisproceduregathersstatisticsforallobjectsinthedatabase.GATHER_DICTIONARY_STATS--Thisproceduregathersstatisticsfordictionaryschemas'SYS','SYSTEM'andschemasofRDBMScomponents.GATHER_FIXED_OBJECTS_STATS--Thisproceduregathersstatisticsforallfixedobjects(dynamicperformancetables).GATHER_INDEX_STATS--Thisproceduregathersindexstatistics.Itattemptstoparallelizeasmuchoftheworkaspossible.Restrictionsaredescribedintheindividualparameters.Thisoperationwillnotparallelizewithcertaintypesofindexes,includingclusterindexes,domainindexes,andbitmapjoinindexes.Thegranularityandno_invalidateargumentsarenotrelevanttothesetypesofindexes.GATHER_SCHEMA_STATS--Thisproceduregathersstatisticsforallobjectsinaschema.GATHER_SYSTEM_STATS--Thisproceduregatherssystemstatistics.GATHER_TABLE_STATS--Thisproceduregatherstableandcolumn(andindex)statistics.Itattemptstoparallelizeasmuchoftheworkaspossible,buttherearesomerestrictionsasdescribedintheindividualparameters.具體使用案例:1.EXEC
DBMS_STATS.GATHER_SCHEMA_STATS('SCOTT',estimate_percent=>80,method_opt=>'FORALLCOLUMNSSIZEAUTO',degree=>4,cascade=>TRUE);2.EXEC
DBMS_STATS.GATHER_TABLE_STATS('SCOTT','EMP',estimate_percent=>80,method_opt=>'FORALLCOLUMNSSIZEAUTO',degree=>4,cascade=>TRUE);3.EXEC
DBMS_STATS.GATHER_INDEX_STATS('SCOTT','PK_EMP',estimate_percent=>80,degree=>4);dbms_stats與analyze的區(qū)別:1.analyze收集系統(tǒng)內(nèi)部對(duì)象會(huì)報(bào)錯(cuò),而dbms_stats不會(huì);2.analyze不能正確的收集分區(qū)表的統(tǒng)計(jì)信息,而dbms_stats可以通過指定粒度來(lái)實(shí)現(xiàn)(granularity)。3.analyze不能并行的收集統(tǒng)計(jì)信息,而dbms_stats可以(可以加上degree=>4來(lái)實(shí)現(xiàn)并行度為4的收集)。4.Oracle推薦使用dbms_stats來(lái)收集統(tǒng)計(jì)信息,analyze將會(huì)被逐漸拋棄?!究偨Y(jié)】1.本文介紹了在不影響生產(chǎn)庫(kù)運(yùn)行性能的前提下。使用expdp數(shù)據(jù)泵參數(shù)ESTIMATE和ESTIMATE_ONLY,在不真正發(fā)起邏輯備份的情況下,可以評(píng)估整個(gè)遷移生產(chǎn)庫(kù)大小的用法和差別及分析;2.同時(shí)介紹了Oracle的CBO,統(tǒng)計(jì)信息、直方圖,如何收集統(tǒng)計(jì)的兩種方法調(diào)用dbms_stats包和analyze兩種方式,推薦使用調(diào)用dbms_stats包;3.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)旅游度假區(qū)招投標(biāo)申請(qǐng)表
- 社會(huì)保險(xiǎn)管理與城市規(guī)劃
- 石油化工設(shè)備使用與管理
- 水上樂園水電布線施工合同
- 農(nóng)村燃?xì)鈧€(gè)人承包施工合同
- 2024年跨國(guó)醫(yī)療設(shè)備采購(gòu)與技術(shù)支持合同
- 2024年河南漯河事業(yè)單位選拔100位人才3篇
- 2024年鏟車安全巡查記錄表3篇
- 2025年度跨境電商擔(dān)保抵押合同范本2篇
- 2025版物流園區(qū)土地及建筑物租賃承包協(xié)議3篇
- 采購(gòu)合同范例壁布
- 公司員工出差車輛免責(zé)協(xié)議書
- 2024年陜西榆林市神木市公共服務(wù)輔助人員招聘775人歷年管理單位遴選500模擬題附帶答案詳解
- 2024年度抖音短視頻拍攝制作服務(wù)合同范本3篇
- 2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試卷(提高篇)(含答案)
- 安全生產(chǎn)事故案例分析
- 2024年07月22208政治學(xué)原理期末試題答案
- 期末檢測(cè)卷(一)(試卷)-2024-2025學(xué)年外研版(三起)英語(yǔ)六年級(jí)上冊(cè)(含答案含聽力原文無(wú)音頻)
- 《客戶開發(fā)技巧》課件
- 《防范于心反詐于行》中小學(xué)防范電信網(wǎng)絡(luò)詐騙知識(shí)宣傳課件
- 口腔執(zhí)業(yè)醫(yī)師定期考核試題(資料)帶答案
評(píng)論
0/150
提交評(píng)論