国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

ORACLE數據表分析

瀏覽:65日期:2023-03-12 15:25:08

一、性能數據的存儲過程:

性能數據的收集包含這樣幾個存儲過程:

GATHER_INDEX_STATS:分析索引信息 
GATHER_TABLE_STATS:分析表信息,當cascade為true時,分析表、列(索引)信息 
GATHER_SCHEMA_STATS:分析方案信息 
GATHER_DATABASE_STATS:分析數據庫信息 
GATHER_SYSTEM_STATS:分析系統信息

二、GATHER_TABLE_STATS: 分析表、字段和索引:

我們分析時最常用到的就是GATHER_TABLE_STATS,dbms_stats能良好地估計統計數據(尤其是針對較大的分區表),并能獲得更好的統計結果,最終制定出速度更快的SQL執行計劃。

procedure gather_table_stats
    (ownname varchar2, tabname varchar2, partname varchar2 default null,
     estimate_percent number default DEFAULT_ESTIMATE_PERCENT,
     block_sample boolean default FALSE,
     method_opt varchar2 default DEFAULT_METHOD_OPT,
     degree number default to_degree_type(get_param("DEGREE")),
     granularity varchar2 default  DEFAULT_GRANULARITY,
     cascade boolean default DEFAULT_CASCADE,
     stattab varchar2 default null, statid varchar2 default null,
     statown varchar2 default null,
     no_invalidate boolean default
       to_no_invalidate_type(get_param("NO_INVALIDATE")),
     stattype varchar2 default "DATA",
     force boolean default FALSE,
     -- the context is intended for internal use only.
     context dbms_stats.CContext default null);

method_opt:決定histograms直方圖信息是怎樣被統計的。method_opt的取值如下(默認值為FOR ALL COLUMNS SIZE AUTO):

  • FOR ALL COLUMNS:統計所有列的HISTOGRAMS.
  • FOR ALL INDEXED COLUMNS:統計所有INDEXED列的HISTOGRAMS.
  • FOR ALL HIDDEN COLUMNS:統計你看不到列的HISTOGRAMS
  • FOR COLUMNS <LIST> SIZE <INTEGER> | REPEAT | AUTO |
  • INTEGER指的直方圖的BUCKETS數量,取值范圍為[1,254]。
  • REPEAT上次統計過的HISTOGRAMS。
  • AUTO:ORACLE根據列數據的分布及相關列的訪問量來決定收集直方圖的列。
  • SKEWONLY:ORACLE 根據列的數據分布來決定哪些列收集直方圖

在 gather_table_stats 存儲過程的所有參數中,除了 ownname 和 tabname,其他的參數都有默認值。

dbms_stats.gather_table_stats(ownname=>"TEST",tabname=>"T1");

三、DBMS_STATS 包管理功能

1、查找表最后執行分析的日期

select table_name,num_rows,blocks,last_analyzed from all_tables where table_name='WORK_LIST';

2、其他存儲過程

  • CREATE_STAT_TABLE :創建分析數據表
  • DROP_STAT_TABLE: 刪除分析數據表
  • GATHER_TABLE_STATS:執行分析表
  • GET_TABLE_STATS :獲取分析數據
  • SET_TABLE_STATS : 設置分析數據
  • EXPORT_TABLE_STATS: 導出分析數據
  • IMPORT_TABLE_STATS: 導入分析數據
  • LOCK_TABLE_STATS :鎖定分析數據
  • UNLOCK_TABLE_STATS :解鎖分析數據
  • RESTORE_TABLE_STATS: 恢復分析數據
  • delete_table_stats :刪除表統計信息

四、自動收集CBO的統計信息

從Oracle Database 10g開始,Oracle在建庫后就默認創建了一個名為GATHER_STATS_JOB的定時任務,用于自動收集CBO的統計信息。

這個自動任務默認情況下在工作日晚上10:00-6:00和周末全天開啟。調用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集統計信息。 
該過程首先檢測統計信息缺失和陳舊的對象。然后確定優先級,再開始進行統計信息。

可以通過以下查詢這個JOB的運行情況:

select * from Dba_Scheduler_Jobs where JOB_NAME ="GATHER_STATS_JOB"

其實同在10點運行的Job還有一個AUTO_SPACE_ADVISOR_JOB,然而這個自動化功能已經影響了很多系統的正常運行,晚上10點對于大部分生產系統也并非空閑時段。 
而自動分析可能導致極為嚴重的閂鎖競爭,進而可能導致數據庫Hang或者Crash。

所以建議最好關閉這個自動統計信息收集功能

方法之一:

exec dbms_scheduler.disable("SYS.GATHER_STATS_JOB");
--恢復自動分析:
exec dbms_scheduler.enable("SYS.GATHER_STATS_JOB");

方法二:

alter system set "_optimizer_autostats_job"=false scope=spfile;
alter system set "_optimizer_autostats_job"=true scope=spfile;

Pfile可以直接修改初始化參數文件,重新啟動數據庫。

到此這篇關于ORACLE數據表分析的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

標簽: Oracle
相關文章:
主站蜘蛛池模板: 女人张开腿让男人桶视频免费大全 | 精品一区二区三区的国产在线观看 | 久久青草免费免费91线频观看 | 精品国产午夜久久久久九九 | 日韩欧美成末人一区二区三区 | 日本精品1在线区 | 国产一区视频在线 | 国产在线精品一区二区中文 | 国产成人精品曰本亚洲78 | 米奇精品一区二区三区在线观看 | 亚洲成人tv | 国产精品自拍在线观看 | 国产精品成人久久久久 | 亚洲理论片在线观看 | 亚洲风情第一页 | 亚洲欧美不卡中文字幕 | 久久精品国产亚洲a | 亚洲国语在线视频手机在线 | 岛国伊人 | 欧美国产一区二区三区 | 纯欧美一级毛片免费 | 精品亚洲视频在线观看 | 免费一级欧美片在线观看 | 午夜爽爽爽男女免费观看hd | 国产免费怡红院视频 | 亚洲视频免费一区 | 欧美色视频日本片高清在线观看 | 美女视频黄色在线观看 | 久久久全国免费视频 | 亚洲午夜片 | 亚洲伊人色综合网站小说 | 男操女视频 | 91久久精品国产91久久性色也 | 久久国产精品免费网站 | 国产又色又爽黄的网站免费 | 午夜在线成人 | 欧美日韩不卡在线 | 在线亚洲黄色 | 国产免费怡红院视频 | 亚洲精品区一区二区三区四 | 精品国产午夜肉伦伦影院 |