Oracle 統計信息筆記----一、表的統計信息

sosi.txt 腳本:

  • SHOW Optimizer Statistics Information
  • 顯示錶級別、分區級別、子分區級別的統計信息

Oracle數據庫的統計信息存儲在數據字典裏

1. 對錶test收集統計信息

avg_row_len :表示 目標表的平均行長度。(不算行頭)

數字100 在Oracle數據塊的行裏佔2字節,加上描述其長度的1字節,一共3字節
同理,'CUIHUA’一共佔6+1=7字節。
兩個字段加起來一共10字節。

SQL> exec dbms_stats.gather_table_stats(ownname => 'C##A',tabname => 'TEST', 
estimate_percent => 100);

PL/SQL procedure successfully completed

SQL> @ C:\Users\18200\Desktop\腳本合集-用於一次性下載所有腳本\腳本\sosi.txt

在這裏插入圖片描述
ORACLE中,一旦一個表被執行了 TRUNCATE 操作,就會成爲當天自動收集統計信息作業 要收集統計信息的目標對象。

在導入大量數據後,應及時收集 統計信息 後,才進行相關的後續業務處理(包括查詢和修改),否則 可能會由於實際信息量 和 統計信息裏 記錄的數據量 存在巨大差異,而導致CBO執行錯誤的執行計劃。

無論用 ANALYZE 還是 DBMS_STATS 包來收集統計信息,均會提交當前事務
ANALYZE 命令屬於DDL語句,會隱式提交;
DBMS_STATS 包收集的那些收集存儲信息的存儲過程內部本身就包含了 commit 語句

後續補充使用 hint 在後續處理的SQL中替換相關執行計劃。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章