partition 4

파티션을 활용한 대량 INSERT 튜닝

비파티션 테이블대량 데이터를 INSERT 하려면, 인덱스를 Unusable 시켰다가 재생성하는 방식이 더 빠를 수 있다.1. nologging 모드 변환alter table t1 nologging; 2. 인덱스 unusable 상태 변경alter index t1_x01 unusable; 3. (할 수 있다면 direct path insert) 방식으로 대량 데이터를 입력한다. insert /*+ append */ into t1select * from s1; 4. (할 수 있다면 nologging 모드로) 인덱스를 재생성한다.alter index t1_x01 rebuild nologging; 5. logging 모드로 전환한다. alter table t1 logging;alter index t1_x01 l..

IT 기술/DB 개념 2025.04.15

파티션, 대량 UPDATE 튜닝

입력/수정/삭제하는 데이터 비중이 5%를 넘는다면, 인덱스를 그대로 둔 상태에서 작업하기보다 인덱스 없이 작업한 후에 재생성하는 게 더 빠르다.  파티션 exchange를 이용한 대량 데이터 변경1. 임시 테이블 생성한다. create table 거래_tnologging asselect * from 거래 where 1=2; 2. 거래 데이터를 읽어 임시 테이블에 입력하면서 상태코드 값을 수정한다. insert /*+ append */ into 거래_tselect 고객번호, 거래일자, 거래순번, ...            , (case when 상태코드 'ZZZ' then 'ZZZ' else 상태코드 end) 상태코드from 거래where 거래일자  3. 임시 테이블에 원본 테이블과 같은 구조로 인덱스를..

IT 기술/DB 개념 2025.04.07

파티션을 활용한 DML 튜닝

Range 파티션create table 주문 ( 주문번호 number, 주문일자 varchar2(8), 고객 ID varchar2(5)...)partition by range(주문일자) (partition P2025_Q1 values less than ('20250401'), partition P2025_Q2 values less than ('20250701')..., partition P9999_MX values less than (MAXVALUE) );  해시 파티션 파티션 키 값을 해시 함수에 입력해서 반환받은 값이 같은 데이터를 같은 세그먼트에 저장하는 방식이다. 해시 파티션은 고객 ID처럼 변별력이 좋고 데이터 분포가 고른 컬럼을 파티션 기준으로 선정해야 효과적이다. create table 고객..

IT 기술/DB 개념 2025.04.03

쿼리 튜닝 실습(partition, pruning)

※ 문제/* 테이블 CONSULT_NO NUMBER -- 상담번호 CONSULTANT_ID VARCHAR2(4) -- 상담자 아이디 con_dt VARCHAR2(8) -- 상담일자 CON_TM VARCHAR2(4) -- 상담시간 RSLT_CD VARCHAR2(4) -- 상담처리 결과 0800(진행), 0900(완료) AFTRSLT VARCHAR2(2) -- 사후처리 결과 11(보류), 21(부서이관) CUST_ID -- 고객ID 1) 아래 요건에 맞는 쿼리를 작성하세요. - 조건 : 상담자 아이디가 바인드변수로 제공 - 상담자가 당월 1일 00시부터 현재일자 12시까지 상담한 정보를 조회하고자 한다. 예) 오늘이 9월22일 일경우 => 2014.09.01 00:00 ~ 2014.09.22 12:00 -..

IT 기술/DB 실습 2024.10.16