91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle表table與索引index的分析及索引重建及統計信息導入導出

發布時間:2020-08-04 14:15:53 來源:ITPUB博客 閱讀:338 作者:不一樣的天空w 欄目:關系型數據庫

1.分析表與索引(analyze 不會重建索引

analyze table tablename compute statistics
等同于 analyze table tablename compute statistics for table for all indexes for all columns

for table 的統計信息存在于視圖:user_tables 、all_tables、dba_tables

for all indexes 的統計信息存在于視圖: user_indexes 、all_indexes、dba_indexes

for all columns 的統計信息存在于視圖:user_tab_columns、all_tab_columns、dba_tab_columns

注:分析表與索引見 Analyze All Table存儲過程

2、一般來講可以采用以下三種方式來手工分析索引。
analyze index idx_t validate structure:
analyze index idx_t compute statistics:
analyze index idx_t estimate statistics sample 10 percent

1)analyze index idx_t validate structure:
這段分析語句是用來分析索引的block中是否有壞塊兒,那么根據分析我們可以得到索引的結構數據,這些數據會保留到
index_stats中,來判斷這個索引是否需要rebuild. 需要注意的是這樣的分析是不會收集索引的統計信息的。

2)validate structure有二種模式: online, offline, 一般來講默認的方式是offline。
當以offline的模式analyze索引時,會對table加一個表級共享鎖,對目前table的一些實時DMl操作會產生一定的影響。
而以online模式分析時候,則不會加任何lock,但在index_stats中是看不到任何信息的

3)analyze index idx_t compute statistics:
用來統計索引的統計信息(全分析),主要為CBO服務。

4)analyze index idx_t estimate statistics sample 10 percent
主要是用來指定比例進行抽樣分析,也是為CBO服務. 例中是抽樣10%

3.重建索引
alter index index_name rebuild tablespace tablespace_name
alter index index_name rebuild tablespace tablespace_name 加入表空間名,會將指定的索引移動到指定的表空間當中。

注:
analyze 操作只是統計信息,并將統計信息存放起來供日后分析SQL使用,不進行重建之類的具體實施性操作,因此要重建索引的話
還是要用 alter index index_name rebuild

4、其他的統計方法

1)DBMS_STATS:這個當然是最強大的分析包了
--創建統計信息歷史保留表
exec dbms_stats.create_stat_table(ownname => 'scott',stattab => 'stat_table');

--導出整個scheme的統計信息
exec dbms_stats.export_schema_stats(ownname => 'scott',stattab => 'stat_table');

--分析scheme
Exec dbms_stats.gather_schema_stats(ownname => 'test',options => 'GATHER AUTO',estimate_percent => dbms_stats.auto_sample_size,method_opt => 'for all indexed columns', degree => 6 );

--分析表的統計信息
exec dbms_stats.gather_table_stats(ownname => 'TEST',tabname => 'sm_user',estimate_percent => 10,method_opt=> 'for all indexed columns') ;

--分析索引的統計信息
exec dbms_stats.gather_index_stats(ownname => 'TEST',indname => 'pk_user_index',estimate_percent => '10',degree => '4') ;

--如果發現執行計劃走錯,刪除表的統計信息
exec dbms_stats.delete_table_stats(ownname => 'TEST',tabname => 'SM_USER') ;

--導入表的歷史統計信息
exec dbms_stats.import_table_stats(ownname => 'TEST',tabname => 'SM_USER',stattab => 'stat_table') ;

--如果進行分析后,大部分表的執行計劃都走錯,需要導回整個scheme的統計信息
exec dbms_stats.import_schema_stats(ownname => 'TEST',stattab => 'SM_USER');

--導入索引的統計信息
exec dbms_stats.import_index_stats(ownname => 'TEST',indname => 'PK_USER_INDEX',stattab => 'stat_table')

analyze和dbms_stats不同的地方:
analyze是同時更新表和索引的統計信息,而dbms_stats會先更新表的統計信息,然后再更新索引的統計信息,
這里就有一個問題,就是當表的統計信息更新后,而索引的統計信息沒有被更新,這時候cbo就有可能選擇錯誤的plan

2)DBMS_UTILITY.ANALYZE_SCHEMA:可直接分析SCHEMA中所有對象
   如:EXEC DBMS_UTILITY.ANALYZE_SCHEMA ('LTTFM','COMPUTE');

3)DBMS_DDL.ANALYZE_OBJECT:收集對象的的統計信息

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐业县| 亚东县| 芮城县| 荣昌县| 黎平县| 太和县| 阿拉善盟| 云和县| 类乌齐县| 通河县| 清新县| 乾安县| 岳普湖县| 吴桥县| 延安市| 恭城| 建昌县| 沛县| 林口县| 静安区| 海宁市| 都昌县| 康乐县| 都匀市| 来凤县| 嘉祥县| 临安市| 庆城县| 渝北区| 佳木斯市| 南平市| 隆化县| 平顶山市| 长沙县| 辽阳县| 乌什县| 耒阳市| 昌宁县| 德清县| 赣榆县| 广饶县|