關于每一列的解釋聯機文檔上都有,這里blocks是高水位以下的數據塊數,empty_blocks是高水位以上的數據塊數。Dbms_stats不計算EM
我們在分析某些語句的性能時,會分析一些信息。像表、列、索引、直方圖等等,本篇主要講表與列的統計信息收集與分析。
一、表統計信息首先創建一個測試表,,更新一些數據,加入一些約束:
CREATE TABLE t
AS
SELECT rownum AS id,
round(dbms_random.normal*1000) AS val1,
100 + round(ln(rownum/3.25+2)) AS val2,
100 + round(ln(rownum/3.25+2)) AS val3,
dbms_random.string('p',250) AS pad
FROM All_Objects
WHERE ROWNUM<=1000
ORDER BY dbms_random.value;
UPDATE T SET VAL1 = NULL WHERE VAL1 < 0;
ALTER TABLE t ADD CONSTRAINT t_pk PRIMARY KEY(ID);
CREATE INDEX t_val1_i ON t(val1);
CREATE INDEX t_val2_i ON t(val2);
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => USER,
TABNAME => 'T',
ESTIMATE_PERCENT => 100,
METHOD_OPT => 'for all columns size skewonly',
CASCADE => TRUE);
END;
此時表已經搜集了統計信息,查看表的統計信息用user_tab_statistics。
SELECT NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN
FROM USER_TAB_STATISTICS
WHERE TABLE_NAME = 'T';
NUM_ROWS
BLOCKS
EMPTY_BLOCKS
AVG_SPACE
CHAIN_CNT
AVG_ROW_LEN
1000
44
0
0
0
265
關于每一列的解釋聯機文檔上都有,這里blocks是高水位以下的數據塊數,empty_blocks是高水位以上的數據塊數。Dbms_stats不計算EMPTY_BLOCKS、AVG_SPACE、CHAIN_CNT。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com