我用來查詢下面提到ALL_表。
您提到的統計信息和直方圖細節將由Oracle自動更新一個頻率。但是當數據庫忙於許多負載時,我看到這些操作需要手動觸發。我們面臨類似的情況,因此我們過去在加載關鍵表之後強制執行分析操作。您需要有用於加載表的id的特權。
ANALYZE TABLE table_name PARTITION (partition_name) COMPUTE STATISTICS;
編輯:ANALYZE
不再收集CBO
統計提到here
所以,DBMS_STATS
包已被使用。
DBMS_STATS.GATHER_TABLE_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
estimate_percent NUMBER DEFAULT to_estimate_percent_type
(get_param('ESTIMATE_PERCENT')),
block_sample BOOLEAN DEFAULT FALSE,
method_opt VARCHAR2 DEFAULT get_param('METHOD_OPT'),
degree NUMBER DEFAULT to_degree_type(get_param('DEGREE')),
granularity VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
cascade BOOLEAN DEFAULT to_cascade_type(get_param('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')),
force BOOLEAN DEFAULT FALSE);
而直到分析完成後,查看錶格下方可能不會產生準確的結果(特別是LAST_ANALYZED和NUM_ROWS列)
注:嘗試在表名稱替換all_
爲dba_
,如果你有訪問它,你可以嘗試它們。
您也可以嘗試讓SELECT_CATALOG_ROLE
爲你使用開發的ID,這樣您就可以選擇data dictionary views
,這降低了DBA
過這樣的查詢的相關性。(還有DBA是幾個問題權的人!)
查詢以識別分區表,分區名稱,行數和上次分析日期!
select
all_part.owner as schema_name,
all_part.table_name,
NVL(all_tab.partition_name,'N/A'),
all_tab.num_rows,
all_tab.last_analyzed
from
all_part_tables all_part,
all_tab_partitions all_tab
where all_part.table_name = all_tab.table_name and
all_tab.partition_name = all_tab.partition_name and
all_part.owner=all_tab.table_owner and
all_part.owner in ('SCHEMA1','SCHEMA2','SCHEMA3')
order by all_part.table_name,all_tab.partition_name;
以下查詢返回是UNUSABLE
SELECT INDEX_NAME,
TABLE_NAME,
STATUS
FROM ALL_INDEXES
WHERE status NOT IN ('VALID','N/A');
以下查詢返回的索引/表是UNUSABLE
SELECT INDEX_NAME,
PARTITION_NAME,
STATUS ,
GLOBAL_STATS
FROM ALL_IND_PARTITIONS
WHERE status != 'USABLE';
DBMS_STATS可能會比[ANALYZE](http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_4005.htm#SQLRF01105)更好。 –
我同意@jonearles,這也是一個一般性建議。您不應該使用'ANALYZE'來收集Oracle 8i後的統計信息,而應該使用DBMS_STATS。您可以查看http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:247162600346210706也 – Incognito
謝謝@jonearles和隱身,我編輯了我的答案。 –