본문 바로가기

교육/Oracle

Day 48 (DB)

반응형

Segment에 공간을 할당하고 해제해보라.

SELECT table_name, num_rows, chain_cnt, blocks, empty_blocks as empty, avg_space, avg_row_len
FROM dba_table
WHERE owner = 'ST' AND table_name = 'SCORE'; // 테이블의 block 관련 정보를 조회한다.

SELECT owner, segment_name, tablespace_name, extent_id, bytes, blocks
FROM dba_extents
WHERE owner = 'ST' AND segment_name = 'SCORE'; // 세그먼트의 extent정보를 조회한다.

SELECT table_name, index_name, status, num_rows, leaf_blocks, blevel
FROM dba_indexes
WHERE owner = 'ST' AND table_name = 'SCORE'; // 인덱스와 연관된 테이블의 정보를 조회한다.

SELECT name, blocks, lf_rows, del_lf_rows FROM index_stats; // 인덱스의 정보를 조회한다.

ALTER TABLE st.score ALLOCATE EXTENT (SIZE 512K); // 테이블에 공간을 할당한다.
ALTER INDEX st.score_sno_cno_pk ALLOCATE EXTENT (SIZE 64); // 인덱스에 공간을 할당한다.

ANALYZE TABLE st.score COMPUTE STATISTICS; // 테이블 정보를 갱신한다.
ANALYZE INDEX st.score_sno_cno_pk VALIDATE STRUCTURE; // 인덱스 정보를 갱신한다.


ALTER TABLE st.score DEALLOCATE UNUSED; // 테이블의 H/W이후 사용하지 않는 extent를 해제한다.
ALTER INDEX st.score_sno_cno_pk DEALLOCATE UNUSED; // 테이블의 H/W이후 사용하지 않는 extent를 해제한다.

실습 : Segment에 공간을 할당하고 해제해보라.

더보기
실습 전 시스템 상태를 확인한다.
공간을 할당하고 정보를 갱신한다.
공간 할당 후 block의 수가 증가한것을 알 수 있다.
추가로 증가도 가능하다. 할당하는 block의 크기는 지정하지 않는다면 locally management에 의해 자동적으로 할당한다.
테이블의 extent중 H/W마크 이후 빈 extent는 해제한다.
갱신하지  않아도 extent정보는 갱신된다.
테이블의 extent정보는 갱신되지 않은 쓰레기 값이 출력된다.
인덱스의 extent중 H/W마크 이후 빈 extent는 해제한다.
인덱스의 extent정보는 갱신되지 않은 쓰레기 값이 출력된다.
정보 갱신후 빈 블럭이 해제되었다.
반응형

'교육 > Oracle' 카테고리의 다른 글

Day 49 (DB)  (0) 2020.01.29
Day 48 (오라클 기초구성2)  (0) 2020.01.28
Day 46 (DB_인덱스)  (0) 2020.01.22
Day 45 (DB)  (0) 2020.01.21
Day 44 (오라클 기초구성1)  (0) 2020.01.20