트러블슈팅 오라클 퍼포먼스 2판 (2017년)
테이블 통계 0 0 43,980

by 구루비스터디 테이블통계 오브젝트통계 GATHER_TABLE_STATS USER_TAB_STATISTICS [2023.09.09]


테이블 통계



CREATE TABLE t
AS
SELECT rownum AS id,
       50+round(dbms_random.normal*4) 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 dual
CONNECT BY level <= 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 => dbms_stats.auto_sample_size,
                                method_opt       => 'for columns size skewonly id, val1 size 15, val2, val3 size 5, pad',
                                cascade          => TRUE);
END;
/


SQL> SELECT num_rows, blocks, empty_blocks, avg_space, chain_cnt, avg_row_len
  2  FROM user_tab_statistics
  3  WHERE table_name = 'T';

  NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN
---------- ---------- ------------ ---------- ---------- -----------
      1000         44            0          0          0         266


  • num_rows : 테이블에 저장된 로우의 개수
  • blocks : 하이 워터마크 아래에 있는 블록수(사용된 블록)
  • empty_blocks : 하이워터마크 위에 있는 블록의 개수(미사용 블록)
  • avg_space : 데이터 블록에 있는 평균 여유공간(바이트)
  • chain_cnt : 다른 블록으로 체이닝되거나 마이그레이션된 로우의 합계
  • avg_row_len : 로우의 평균 크기(바이트)


"데이터베이스 스터디모임" 에서 2017년에 "전문가를 위한 트러블슈팅 오라클 퍼포먼스(Second Edition) " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4375

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입