在Oracle 數據庫中,我們經常需要去手工分析表和索引,還有某個模式下所有的表和索引等等。oracle 提供了兩種分析方法,分別是dbms_stats 包和analyze 命令。這些是我們在日常項目管理中的真實使用的方法,供參考。
成都創(chuàng)新互聯公司專注于且末網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供且末營銷型網站建設,且末網站制作、且末網頁設計、且末網站官網定制、小程序開發(fā)服務,打造且末網絡公司原創(chuàng)品牌,更為您提供且末網站排名全網營銷落地服務。
在10g 中分析某一個用戶下所有的對象,如user_miki 用戶
Sql代碼 收藏代碼
sys.dbms_stats.gather_schema_stats(ownname = 'user_miki',estimate_percent = 30,method_opt = 'FOR ALL INDEXED COLUMNS SIZE AUTO',cascade = true,options = 'GATHER');
這是我在項目中分析一個用戶所有對象的分析方法,取樣比例為30% ,分析所有索引字段,生成柱形圖,并且也分析索引。
(miki西游 @mikixiyou 文檔,原文鏈接: )
在10g 中分析某一個用戶下某一個表及其索引,如user_miki 用戶下info 表和它的索引
Sql代碼 收藏代碼
execute dbms_stats.gather_table_stats(ownname = 'user_miki',tabname = 'info',estimate_percent = 30,method_opt = 'for all indexed columns size auto');
這是我在項目中單獨分析一個用戶中一張表的分析方法,取樣比例為30% ,分析所有索引字段,生成柱形圖,并且也分析索引。
我們在google 時,還能看到使用analzye 命令分析表的方法。
Sql代碼 收藏代碼
analyze table table_name compute statistics;
這個會將索引和表一起分析;
Sql代碼 收藏代碼
analyze table table_name compute statistics for table;
這個僅分析表;
analyze table table_name compute statistics for all columns;
這個僅分析表,和上面所有的字段,生成柱形圖
analyze table table_name compute statistics for all indexed columns;
這個僅分析表,和上面所有建立索引的字段,生成柱形圖
在9i 中,我們常常使用analyze 方法,在10g 以后,就改為dbms_stats.gather_schema_stats 類似的包來分析數據庫對象了。
10g 的分析函數包比9i 的analyze 方法更靈活一些。
在10g 中,會有個系統(tǒng)的計劃任務,每天10 點和周末兩天都自動分析新的數據庫對象和它認為統(tǒng)計信息已經過期的數據庫對象。這個分析結果有時候不靠譜。
因此,我都采用10g 中提供的dbms_stats.gather_schema_stats 方法作為補充,設置一個計劃任務定期去分析業(yè)務用戶下所有數據庫對象。
Sql代碼 收藏代碼
variable job number;
begin
sys.dbms_job.submit(job = :job,
what = 'sys.dbms_stats.gather_schema_stats(ownname = ''USR_MIKI'',estimate_percent = 30,method_opt = ''FOR ALL INDEXED COLUMNS SIZE AUTO'',cascade = true,options = ''GATHER'');',
next_date = to_date('16-12-2012 00:56:24', 'dd-mm-yyyy hh24:mi:ss'),
interval = 'sysdate+7');
commit;
end;
/
例如,設置為每周六運行一次。
1。如果你的表經常由幾千萬變成幾百萬,又變成幾千萬那么需要制定分析計劃定期表分析,同時可以一并分析索引,計算索引中數據的分布情況,這樣CBO會選擇更加準確的執(zhí)行計劃。
2。如果表結構變化了也要做下,也就是經常對表做dml就需要分析,現在推薦使用dbms_stats包。
analyze table 表名 compute statistics
analyze index 索引ID compute statistics
如果想分析所有的表名和index名可以從視圖user_tables,user_indexes取得相關的信息,自動生成SQL命令
網站題目:表分析怎么做oracle,表格分析怎么做
地址分享:http://muchs.cn/article24/hcpdje.html
成都網站建設公司_創(chuàng)新互聯,為您提供虛擬主機、小程序開發(fā)、App開發(fā)、用戶體驗、品牌網站制作、移動網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯