手動收集——收集統計資訊
DBMS_STATS包
4個粒度:
資料庫級別——GATHER_DATABASE_STATS
前提:job_queue_processes必須非0,如果為0,則不工作
查
SQL> show parameter job_queue_processes;
NAME TYPE VALUE
------------------------------------ ---------- ------------------------------
job_queue_processes integer 10
GATHER_DATABASE_STATS幾個引數如下:
。ESTIMATE_PERCENT——對資料行的選擇百分比;如為NULL,就對所有表所有行統計
。ESTHOD_OPT——是否收集直方圖;AUTO依據列資料的分佈和列的資料負載收集直方圖
。GRANULARITY——對錶而言,說明統計粒度;
1,AUTO
2,GLOBAL AND PARTITION——全域性統計量
3,PARTITION——所有表的分割槽
4,SUBPATITION——子分割槽
5,ALL,所有表的分割槽,子分割槽,全域性統計量
。CASCADE——表和索引
。OPTIONS——對統計物件作出選擇
1,GATHER——收集所有物件的統計資料
2,GATHER AUTO——資料庫認為有必要的物件
3,GATHER EMPTY——只收集目前沒有統計資料的資料庫物件
4,GATHER STALE——收集過時
語法:
SQL> begin
2 dbms_stats.GATHER_DATABASE_STATS(estimate_percent=>null);
3 end;
4 /
模式—————GATHER_SCHEMA_STATS
語法:
SQL> execute dbms_stats.GATHER_SCHEMA_STATS(ownname=>'SCOTT');
驗證:
SQL> select LAST_ANALYZED,TABLE_NAME,OWNER,NUM_ROWS,SAMPLE_SIZE
2 from dba_tables
3 where wner= 'SCOTT';
LAST_ANAL TABLE_NAME OWNER NUM_ROWS SAMPLE_SIZE
--------- --------------- ------------------------------ ---------- -----------
04-DEC-11 DEPT SCOTT 4 4
04-DEC-11 BONUS SCOTT 0 0
04-DEC-11 SALGRADE SCOTT 5 5
04-DEC-11 DEPT_TEST3 SCOTT 4 4
04-DEC-11 TEST3 SCOTT 0 0
04-DEC-11 TEST1 SCOTT 1 1
表——————GATHER_TABLE_STATS
語法:
SQL> execute dbms_stats.GATHER_TABLE_STATS('scott','test1');
索引—————GATHER_INDEX_STATS
查:
SQL> select INDEX_NAME,TABLE_NAME from dba_indexes where owner='SCOTT';
INDEX_NAME TABLE_NAME
------------------------------ ------------------------------
PK_DEPT DEPT
I_REV TEST3
I_FUN TEST3
語法:
SQL> execute dbms_stats.GATHER_INDEX_STATS('scott','PK_DEPT');
PL/SQL procedure successfully completed.
========================================
========================================
手工收集的統計資訊儲存在哪裡?
DBA_TAB_STATISTICS——儲存CBO計算所需的統計資料
DBA_TAB_COL_STATISTICS——收集列的統計資料
例子:
SQL> select NUM_ROWS,AVG_SPACE,AVG_ROW_LEN,NUM_FREELIST_BLOCKS,LAST_ANALYZED
2 from DBA_TAB_STATISTICS
3 where table_name='DEPT';
NUM_ROWS AVG_SPACE AVG_ROW_LEN NUM_FREELIST_BLOCKS LAST_ANAL
---------- ---------- ----------- ------------------- ---------
4 8049 20 0 04-DEC-11
SQL> select COLUMN_NAME,NUM_DISTINCT,LOW_VALUE,HIGH_VALUE,SAMPLE_SIZE,AVG_COL_LEN
2 from dba_tab_col_statistics
3 where table_name='DEPT';
COLUMN_NAM NUM_DISTINCT LOW_VALUE HIGH_VALUE SAMPLE_SIZE AVG_COL_LEN
---------- ------------ -------------------- --------------- ----------- -----------
DEPTNO 4 C10B C129 4 3
DNAME 4 4143434F554E54494E47 53414C4553 4 10
LOC 4 424F53544F4E 4E455720594F524 4 8
B
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156890/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 收集統計資訊方案
- Oracle收集統計資訊Oracle
- 收集全庫統計資訊
- 微課sql最佳化(3)、統計資訊收集(2)-如何收集統計資訊SQL
- 啟用與禁用統計資訊自動收集
- 6 收集資料庫統計資訊資料庫
- 【統計資訊】Oracle常用的收集統計資訊方式Oracle
- [統計資訊系列7] Oracle 11g的自動統計資訊收集Oracle
- oracle 統計資訊檢視與收集Oracle
- 資訊收集
- Oracle統計資訊的收集和維護Oracle
- Oracle運維指令碼-收集統計資訊Oracle運維指令碼
- 最佳實踐:解讀GaussDB(DWS) 統計資訊自動收集方案
- 內網資訊收集內網
- 資訊收集流程
- 資訊收集11——nmap
- Linux本地資訊收集Linux
- 微課sql最佳化(8)、統計資訊收集(6)-統計資訊查詢SQL
- ORACLE19c新特性-實時統計資訊收集Oracle
- Oracle 11g系統自動收集統計資訊的一些知識Oracle
- Linux常用資訊收集命令Linux
- kali常用的資訊收集
- GUI程式設計--班級資訊收集系GUI程式設計
- GUI程式設計--班級資訊收集系..GUI程式設計
- 【TUNE_ORACLE】定製化收集統計資訊SQL參考OracleSQL
- Nebula Graph 特性講解——RocksDB 統計資訊的收集和展示
- 網路安全中資訊收集是什麼?資訊收集分為哪幾類?
- 收集 Kubernetes 資源統計資料的新工具
- 微課sql最佳化(6)、統計資訊收集(4)-關於動態取樣SQL
- 滲透測試-資訊收集
- 滲透測試——資訊收集
- 滲透測試------資訊收集
- powershell滲透-資訊收集命令
- test資訊收集11(mimikatz使用)
- MySQL對所有表收集統計資訊(Python 2指令碼)MySqlPython指令碼
- GUI程式設計--班級資訊收集系6.3GUI程式設計
- 資訊收集利器|一款功能強大的子域收集工具
- 系統日誌及資料庫相關資訊收集資料庫