Database초보우낙
12.하이브리드 파티션 테이블 본문
참고사이트 : TunA :: Hybrid Partitioned 테이블 (tistory.com)
오라클 19c 뉴피처(새로운기능)에 대해서 아는것들
1. 자동 인덱싱(엑사데이터) 기능.
-> 오라클이 자주 수행하는 SQL들에 대해서 인덱스를 자동으로 생성해주는 기능
(개발 SI DBA : 인덱스 생성을 DBA가 직접해야하는데 이때 유용합니다)
2. 리소스 메니져(resource manager)와 관련한 새로운 기능중에 악성 SQL을 차단하는 기능이 새로 생겼다.
3. 하이브리드 파티션 테이블
-> 내부 파티션과 외부 파티션을 같이 하나의 파티션 테이블에 둘 수 있는 테이블
external table이 데이터를 db내부에 저장하지 않고 os에 파일 형태로 저장된 데이터를 엑세스하는 테이블이라고 했는데 파티션 테이블의 일부 파티션이 데이터 베이스 외부에 저장된 csv파일이라는것이 하이브리드 파티션 테이블
중요도가 높은 데이터는 내부 데이터 베이스의 파티션으로 저장하고 중요도가 낮은 데이터는 외부 os에 파티션으로 저장하게 하는 테이블이 하이브리드 파티션 테이블
■ 실습
#1. /home/oracle밑에 아래의 3개의 파일을 생성
cd /home/oracle
vi 205001.txt
1,20500101
2,20500102
vi 205002_01.txt
3,20500201
vi 205002_02.txt
4,20500202
vi 205001.txt

mkdir ext1
mkdir ext2
mv 205001.txt ./ext1/
mv 205002*.txt ./ext2/
#2. sys 유져로 접속한 세션에서 아래와 같이 디렉토리를 생성하고
scott 유져에게 디렉토리에 대한 전체 권한을 부여합니다.
SYS> create or replace directory dir_ext1
as '/home/oracle/ext1';
SYS> create or replace directory dir_ext2
as '/home/oracle/ext2';
SYS> grant all on directory dir_ext1 to scott;
SYS> grant all on directory dir_ext2 to scott;

#3. 하이브리드 테이블을 scott에서 생성합니다.
create table t1
( c1 number,
c2 date )
external partition attributes (
type oracle_loader
default directory dir_ext1
access parameters (
records delimited by newline
nobadfile nologfile nodiscardfile
fields terminated by ','
optionally enclosed by '"'
missing field values are null (
c1,
c2 char(8) date_format date mask "YYYYMMDD"
)
)
)
partition by range(c2) (
partition p1 values less than ( date '2050-02-01') external location('205001.txt')
,partition p2 values less than ( date '2050-03-01') external default directory dir_ext2
location ('205002_01.txt' , '205002_02.txt')
,partition p3 values less than (maxvalue)
);

하이브리드 테이블의 장점은?
외부의 csv파일이나 text파일의 데이터를 바로 테이블의 파티션으로 구성할 수 있기 때문에 데이터베이스에 테이블 스페이스를 생성해서 데이터를 입력하지 않아도 된다. 데이터 베이스의 테이블의 데이터로 구성하려면 신경써야하는데 테이블 스페이스가 3가지입니다. csv와 text 파일의 데이터를 저장할 테이블스페이스, undo tablespace와 te,p tablespace입니다.
아래의 insert 문장으로 t1하이브리드 파티션 테이블에 입력하세요
insert into t1 values(7,date '2050-02-03'); --실패
insert into t1 values(8,date '2050-03-02'); --성공
insert into t1 values(9,date '2050-03-02'); --성공
commit;
설명 : 2050-02-03데이터는 외부 파티션에 입력되어야하는 데이터인데 외부파티션에는 데이터가 입력이 안된다
'oracle 12c' 카테고리의 다른 글
13-2 (1) | 2024.05.01 |
---|---|
13. oracle 19c에서 data pump 사용법(19c 뉴피쳐) (0) | 2024.04.30 |
11. 19C 뉴피쳐 기능2. 과도한 시스템 리소스를 사용하는 SQL 문에 대한 격리 (0) | 2024.04.30 |
10.자동으로 인덱스를 생성하는 기능 (0) | 2024.04.30 |
9.(12c의 새로운 기능) SQL PLAN MANAGER 와 SQL Profile (0) | 2024.04.30 |