본문 바로가기

Reorg8

테이블의 Reorg 대상확인 프로시저(DBMS_SPACE.SPACE_USAGE) 테이블의 리오그 대상을 추출할 때 사용할 수 있는 오라클 내부 프로시저 설명 : 세그먼트의 High Water Mark(이하 HWM) 아래의 공간(즉 현재 사용하는 공간)에 대한 사용 정보를 제공합니다. 단, 비트맵 블록(bitmap block), 세그먼트 헤더(segment header), 익스텐트 맵 블록(extent map block)의 정보는 포함되지 않습니다. 일반테이블 예제 declare l_fs1_bytes number; l_fs2_bytes number; l_fs3_bytes number; l_fs4_bytes number; l_fs1_blocks number; l_fs2_blocks number; l_fs3_blocks number; l_fs4_blocks number; l_full_by.. 2022. 1. 14.
[Reorg] 대상 테이블 추출하기 (DBMS_ROWID,DBMS_SPACE) 리오그 대상 테이블을 선정할 때 실제 Table에서 사용하고 있는 blocks를 계산하는 쿼리를 사용중인데요, 그냥 사용하기보다는 정리를 통해서 이해하고 사용하기 위해서 이번 글을 포스팅합니다. 1.DBMS_ROWID와 DBA_SEGMENTS로 확인 아래는 실제 사용하고 있는 block을 계산하는 쿼리입니다. SELECT COUNT(DISTINCT DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)||DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)) "USED" FROM [테이블 명]; 그리고 DBA_SEGMENTS 뷰를 조회하여 현재 테이블이 점유하고 있는 Block수도 구할 수 있습니다. SELECT OWNER,SEGMENT_NAME, BLOCKS, bytes/1024.. 2021. 2. 4.
테이블 단편화(Fragmentation) 테이블 단편화란 Reorg를 진행해야하는 가장 큰 이유중에 하나입니다. 테이블 단편화의 이슈로 발생할 수 있는 문제점은 아래와 같습니다. 1.성능저하 2.불필요한 disk 용량 증가 이 문제점을 해결하기 위해서 정기적으로 Reorg작업을 수행합니다. Reorg 대상 확인 가장먼저 Reorg 대상을 확인해야 합니다. (통계정보가 최신화 되어 있으면 정확한 분석이 가능합니다. 혹, 영향도가 있다면 테이블 row 전체를 count하여 진행하여도 됩니다.) 아래는 스키마단위로 통계정보를 수동으로 수집하는 명령어입니다. 15%의 sample을 이용하여 통계정보를 재생성하는 명령어입니다. exec dbms_stats.gather_schema_stats('NEWMPDB', estimate_percent=>15); D.. 2020. 10. 8.
Reorg 방법 - Shrink 와 Move DB를 사용하다보면 DML 작업이 한 테이블에 많이 일어나게 되고 그렇게 되면 HWM(High Water Mark)는 이전에 데이터가 많았던 지점까지 표시하고 있지만 실제로 사용하는 블록은 그렇지 않게 됩니다. 테이블 크기도 불필요하게 커질 뿐아니라, SCAN시 불필요한 I/O도 발생하게 됩니다. 왜냐하면 Full Scan시 데이터 스캔의 범위기준이 HWM까지이기 때문입니다. 따라서 테이블에 사용하지 않는 공간이 많으면 용량뿐 아니라, 조회 성능도 떨어지는 상황이 발생하게 됩니다. 그것을 해결해주는 방법으로 Shrink와 Table Move 작업이 있습니다. Shrink는 10g에서 지원하는 기능으로 Online으로 테이블의 HWM을 낮추어 공간을 축소시킬 수 있는 작업입니다. 테스트를 통해 Shrink.. 2020. 9. 2.