반응형
구문
일반 테이블 영역 default attributes 변경 구문
ALTER TABLE 테이블명 MODIFY DEFAULT ATTRIBUTES COMPRESS 압축옵션;
lob 테이블 영역 default attributes 변경 구문
ALTER TABLE 테이블명 MODIFY DEFAULT ATTRIBUTES LOB(LOB 컬럼명) (COMPRESS 압축옵션);
테스트를 위해 CLOB이 포함된 테이블 하나를 생성하고 옵션 설정 전/후를 비교하여 추가된 파티션이 압축옵션을 가지고 있는지 테스트해보겠습니다.
1.테스트테이블 생성
CREATE TABLE LOB_PART_TEST (
ID VARCHAR2(10) NOT NULL,
NAME VARCHAR2(10) NOT NULL,
MSG CLOB,
SEQ NUMBER
)
TABLESPACE USERS
LOB(MSG) STORE AS SECUREFILE
PARTITION BY RANGE (ID)
(
PARTITION PT_LOB_PART_TEST_P1 VALUES LESS THAN ('10')
TABLESPACE USERS
)
;
2.상태 확인
둘다 compress관련된 부분에 설정이 되어 있지 않습니다.
SELECT owner,table_name,PARTITIONING_TYPE,PARTITION_COUNT,DEF_COMPRESSION,DEF_COMPRESS_FOR FROM dba_part_tables WHERE table_name='LOB_PART_TEST';
OWNER |TABLE_NAME |PARTITIONING_TYPE|PARTITION_COUNT|DEF_COMPRESSION|DEF_COMPRESS_FOR|
------+-------------+-----------------+---------------+---------------+----------------+
SYSTEM|LOB_PART_TEST|RANGE | 2|NONE | |
SELECT TABLE_owner,table_name,column_name,lob_name,DEF_COMPRESS FROM dba_part_lobs WHERE table_name='LOB_PART_TEST';
TABLE_OWNER|TABLE_NAME |COLUMN_NAME|LOB_NAME |DEF_COMPRESS|
-----------+-------------+-----------+-------------------------+------------+
SYSTEM |LOB_PART_TEST|MSG |SYS_LOB0000077784C00003$$|NO |
3.파티션 add 하여 옵션 확인
ALTER TABLE LOB_PART_TEST ADD PARTITION PT_LOB_PART_TEST_P2 VALUES less than ('20');
4.파티션 확인
추가된 PT_LOB_PART_TEST_P2는 테이블영역과 LOB영역 둘다 압축이 되지 않고 추가되었습니다.
SELECT table_owner,table_name,partition_name,high_value,tablespace_name,compression,compress_for FROM dba_tab_partitions WHERE table_name='LOB_PART_TEST';
TABLE_OWNER|TABLE_NAME |PARTITION_NAME |HIGH_VALUE|TABLESPACE_NAME|COMPRESSION|COMPRESS_FOR|
-----------+-------------+-------------------+----------+---------------+-----------+------------+
SYSTEM |LOB_PART_TEST|PT_LOB_PART_TEST_P1|'10' |USERS |DISABLED | |
SYSTEM |LOB_PART_TEST|PT_LOB_PART_TEST_P2|'20' |USERS |DISABLED | |
SELECT table_owner,table_name,lob_name,tablespace_name,compression FROM dba_lob_partitions WHERE table_name='LOB_PART_TEST';
TABLE_OWNER|TABLE_NAME |LOB_NAME |TABLESPACE_NAME|COMPRESSION|
-----------+-------------+-------------------------+---------------+-----------+
SYSTEM |LOB_PART_TEST|SYS_LOB0000077784C00003$$|USERS |NO |
SYSTEM |LOB_PART_TEST|SYS_LOB0000077784C00003$$|USERS |NO |
5. 설정변경
ALTER TABLE LOB_PART_TEST MODIFY DEFAULT ATTRIBUTES COMPRESS FOR OLTP;
ALTER TABLE LOB_PART_TEST MODIFY DEFAULT ATTRIBUTES LOB(MSG) (COMPRESS HIGH);
확인
SELECT owner,table_name,PARTITIONING_TYPE,PARTITION_COUNT,DEF_COMPRESSION,DEF_COMPRESS_FOR FROM dba_part_tables WHERE table_name='LOB_PART_TEST';
OWNER |TABLE_NAME |PARTITIONING_TYPE|PARTITION_COUNT|DEF_COMPRESSION|DEF_COMPRESS_FOR|
------+-------------+-----------------+---------------+---------------+----------------+
SYSTEM|LOB_PART_TEST|RANGE | 2|ENABLED |ADVANCED |
SELECT TABLE_owner,table_name,column_name,lob_name,DEF_COMPRESS FROM dba_part_lobs WHERE table_name='LOB_PART_TEST';
TABLE_OWNER|TABLE_NAME |COLUMN_NAME|LOB_NAME |DEF_COMPRESS|
-----------+-------------+-----------+-------------------------+------------+
SYSTEM |LOB_PART_TEST|MSG |SYS_LOB0000077784C00003$$|HIGH |
6.파티션 add하여 추가된 파티션 설정 확인
ALTER TABLE LOB_PART_TEST ADD PARTITION PT_LOB_PART_TEST_P3 VALUES less than ('30');
SELECT table_owner,table_name,partition_name,high_value,tablespace_name,compression,compress_for FROM dba_tab_partitions WHERE table_name='LOB_PART_TEST';
TABLE_OWNER|TABLE_NAME |PARTITION_NAME |HIGH_VALUE|TABLESPACE_NAME|COMPRESSION|COMPRESS_FOR|
-----------+-------------+-------------------+----------+---------------+-----------+------------+
SYSTEM |LOB_PART_TEST|PT_LOB_PART_TEST_P1|'10' |USERS |DISABLED | |
SYSTEM |LOB_PART_TEST|PT_LOB_PART_TEST_P2|'20' |USERS |DISABLED | |
SYSTEM |LOB_PART_TEST|PT_LOB_PART_TEST_P3|'30' |USERS |ENABLED |ADVANCED |
SELECT table_owner,table_name,lob_name,tablespace_name,compression FROM dba_lob_partitions WHERE table_name='LOB_PART_TEST';
TABLE_OWNER|TABLE_NAME |LOB_NAME |TABLESPACE_NAME|COMPRESSION|
-----------+-------------+-------------------------+---------------+-----------+
SYSTEM |LOB_PART_TEST|SYS_LOB0000077784C00003$$|USERS |NO |
SYSTEM |LOB_PART_TEST|SYS_LOB0000077784C00003$$|USERS |NO |
SYSTEM |LOB_PART_TEST|SYS_LOB0000077784C00003$$|USERS |HIGH |
새로 추가된 파티션은 COMPRESS가 잘 되서 생성되었습니다.
참고로 LOB 의 compress 옵션에는 LOW/MEDIUM/HIGH가 있습니다.
압축률에 따른 차이로 보이며 성능에도 차이가 있을 수있습니다. 아무래도 압축률이 높은 HIGH로 수행하면 성능이 안나올 수 있을것도 같네요.
테스트 DB : Oracle 23ai Free
반응형
'Oracle > 운영' 카테고리의 다른 글
[SGA] library cache lock&pin 발생원인과 재현하기 (2) | 2024.12.13 |
---|---|
[23ai] ai벡터검색 - ChatGPT를 이용하여 실시간 응답을 받기(RAG) (2) | 2024.11.15 |
[23ai] ai벡터검색 - vector_distance (0) | 2024.11.13 |
[23ai] new feature 벡터 타입과 ai벡터검색 - pdf파일을 백터검색하기 (2) (0) | 2024.11.12 |
[23ai] new feature 벡터 타입과 ai벡터검색 - 유사성검색 (3) (0) | 2024.11.12 |
댓글