日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

dbms_stats包更新、导出、导入、锁定统计信息

發(fā)布時(shí)間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dbms_stats包更新、导出、导入、锁定统计信息 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文轉(zhuǎn)自:http://www.cnblogs.com/zhaoguan_wang/p/5126629.html

dbms_stats包問(wèn)世以后,我們可通過(guò)一種新的方式來(lái)為CBO收集統(tǒng)計(jì)數(shù)據(jù)。目前,已經(jīng)不再推薦使用老式的Analyze分析表和dbms_utility方法來(lái)生成CBO統(tǒng)計(jì)數(shù)據(jù)。dbms_stats能良好地估計(jì)統(tǒng)計(jì)數(shù)據(jù)(尤其是針對(duì)較大的分區(qū)表),并能獲得更好的統(tǒng)計(jì)結(jié)果,最終制定出速度更快的SQL執(zhí)行計(jì)劃

1 --創(chuàng)建用于存放統(tǒng)計(jì)信息的舞臺(tái)表 2 3 exec dbms_stats.create_stat_table (ownname => 'SCOTT', stattab => 'ST_T1', tblspace => 'TBS1'); 4 5 --刪除存放統(tǒng)計(jì)信息的指定舞臺(tái)表 6 exec DBMS_STATS.DROP_STAT_TABLE('scott', 'ST_T1');

--使用export_table_stats過(guò)程導(dǎo)出統(tǒng)計(jì)信息,此時(shí)statid為T(mén)1_20160101?????

exec dbms_stats.export_table_stats(ownname =>'SCOTT', tabname=>'T1', stattab=>'ST_T1', statid => 'T1_20160101');

--使用import_table_stats導(dǎo)入之前過(guò)舊的統(tǒng)計(jì)信息(可以指定新的ownname)??

1 exec dbms_stats.import_table_stats(ownname =>'SCOTT', tabname=>'T1', stattab=>'ST_T1', statid => 'T1_20160101', no_invalidate => true);

統(tǒng)計(jì)信息加鎖/解鎖

1 --鎖住表的統(tǒng)計(jì)信息 2 exec dbms_stats.lock_table_stats('SCOTT','T1'); 3 --解鎖表的統(tǒng)計(jì)信息 4 exec dbms_stats.unlock_table_stats('SCOTT','T1');

更新schema或table的統(tǒng)計(jì)信息:

1 exec dbms_stats.gather_schema_stats( ownname => 'SCOTT', options => 'GATHER AUTO', estimate_percent => dbms_stats.auto_sample_size, method_opt => 'for all columns size repeat', degree => 8 ); 2 3 4 EXEC DBMS_STATS.gather_table_stats( ownname => 'socct', tabname =>'T1', estimate_percent =>100, method_opt => 'for all columns size auto', cascade =>true, degree => 8 );

estimate_percent選項(xiàng)?? 它允許Oracle的dbms_stats在收集統(tǒng)計(jì)數(shù)據(jù)時(shí)指定具體的采樣比例,缺省是100???? 一個(gè)新的參數(shù),自動(dòng)估計(jì)要采樣的一個(gè)segment的最佳百分比:estimate_percent => dbms_stats.auto_sample_size? 在使用自動(dòng)采樣時(shí),Oracle會(huì)為一個(gè)樣本尺寸選擇5到20的百分比。

method_opt選項(xiàng)?? 為了智能地生成直方圖,Oracle為dbms_stats準(zhǔn)備了method_opt參數(shù)。在method_opt子句中,還有一些重要的新選項(xiàng),包括skewonly,repeat和auto:?? method_opt=>'for all columns size skewonly'? -- skewonly選項(xiàng)會(huì)耗費(fèi)大量處理時(shí)間,因?yàn)樗獧z查每個(gè)索引中的每個(gè)列的值的分布情況。?? method_opt=>'for all columns size repeat'????? -- 只會(huì)為現(xiàn)有的直方圖重新分析索引,不再搜索其他直方圖機(jī)會(huì)。定期重新分析統(tǒng)計(jì)數(shù)據(jù)時(shí),你應(yīng)該采取這種方式。?? method_opt=>'for all columns size auto'???????? -- 根據(jù)數(shù)據(jù)分布以及應(yīng)用程序訪(fǎng)問(wèn)列的方式來(lái)創(chuàng)建直方圖(例如使用alter table xxx monitoring; 命令監(jiān)視表時(shí),使用auto選項(xiàng))??
并行收集?? Oracle允許以并行方式來(lái)收集CBO統(tǒng)計(jì)數(shù)據(jù),這就顯著提高了收集統(tǒng)計(jì)數(shù)據(jù)的速度。但是,要想并行收集統(tǒng)計(jì)數(shù)據(jù),你需要一臺(tái)安裝了多個(gè)CPU的SMP服務(wù)器。gather_schema_stats 的 options參數(shù)?? 使用4個(gè)預(yù)設(shè)的方法之一,這個(gè)選項(xiàng)能控制Oracle統(tǒng)計(jì)的刷新方式: ?? gather——重新分析整個(gè)架構(gòu)(Schema)。 ?? gather empty——只分析目前還沒(méi)有統(tǒng)計(jì)的表。 ?? gather stale——只重新分析修改量超過(guò)10%的表(這些修改包括插入、更新和刪除)。 ?? gather auto——重新分析當(dāng)前沒(méi)有統(tǒng)計(jì)的對(duì)象,以及統(tǒng)計(jì)數(shù)據(jù)過(guò)期(變臟)的對(duì)象。注意,使用gather auto類(lèi)似于組合使用gather stale和gather empty。?? 注意,無(wú)論gather stale還是gather auto,都要求進(jìn)行監(jiān)視。如果你執(zhí)行一個(gè)alter table xxx monitoring命令,Oracle會(huì)用dba_tab_modifications視圖來(lái)跟蹤發(fā)生變動(dòng)的表。這樣一來(lái),你就確切地知道,自從上一次分析統(tǒng)計(jì)數(shù)據(jù)以來(lái),發(fā)生了多少次插入、更新和刪除操作。

也有提到關(guān)于索引統(tǒng)計(jì)信息收集的負(fù)面影響,索引方面建議直接使用? alter index idx_name rebuild nologging;?? 與analyze相比dbms_stats具有很多優(yōu)勢(shì),比如并行,比如分區(qū)信息統(tǒng)計(jì)等,但是dbms_stats在分析index的時(shí)候處理方式并不是太理想,dbms_stats分析 index時(shí)將會(huì)只統(tǒng)計(jì)leaf_blocks為當(dāng)前有數(shù)據(jù)的 leaf block,而analyze則會(huì)統(tǒng)計(jì)為所有曾經(jīng)被使用過(guò)的 leaf block number,很顯然dbms_stats的統(tǒng)計(jì)結(jié)果會(huì)使 index fast full scan的成本被嚴(yán)重低估,在某些情況下會(huì)錯(cuò)誤得選擇 index fast full scan做為執(zhí)行路徑。

轉(zhuǎn)載于:https://www.cnblogs.com/linbo3168/p/7279359.html

總結(jié)

以上是生活随笔為你收集整理的dbms_stats包更新、导出、导入、锁定统计信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。