행위

템프테이블 확장

DB CAFE

thumb_up 추천메뉴 바로가기


템프테이블 확장 절차[편집]

1. datafile 추가


대용량 index생성으로 인해 예상되는 증가량을 index Tablespace(이하 TS)영역에 반영.

alter tablespace ORAMARSX add datafile '/dw19/oradata/CW27ORA/oramarsx17.dbf' size 3000M;
alter tablespace ORAMARSX add datafile '/dw20/oradata/CW27ORA/oramarsx18.dbf' size 3000M;
alter tablespace ORAMARSX add datafile '/dw21/oradata/CW27ORA/oramarsx19.dbf' size 3000M;
alter tablespace ORAMARSX add datafile '/dw22/oradata/CW27ORA/oramarsx20.dbf' size 3000M;

2. temp TS size 증가


index생성작업 자체가 대용량의 sort작업을 동반하므로 임시적으로 temp size를 늘려줌.

alter tablespace temp add tempfile '/dw02/oradata/CW27ORA/temp05.dbf' size 3000M;
alter tablespace temp add tempfile '/dw03/oradata/CW27ORA/temp06.dbf' size 3000M;
alter tablespace temp add tempfile '/dw04/oradata/CW27ORA/temp07.dbf' size 3000M;
alter tablespace temp add tempfile '/dw05/oradata/CW27ORA/temp08.dbf' size 3000M;

3. pga 설정 및 session의 sort_area_size 변경


oracle9i라면 기본적으로 workarea_size_policy parameter가 auto로 설정되어 있을것이다만, 작업의 효율을 위해 현 세션에 대해 한시적으로 manual로 변경한 후 sort_area_size를 적절하게 늘려주기를 바람. 병렬로 처리를 할것이기 때문에 현재의 session이 Parellel query처리가 가능한지도 확인하고..

alter session set workarea_size_policy=manual;
alter session set sort_area_size = 209715200;

.병렬query 지원여부 확인

select * from v$option where parameter = 'Parallel execution';

4. ODSMARS.pdw_ods_branch_sales_result_UK index생성


.실제 primary key index를 생성하는 구문임. .storage절은 원하시는 값으로 셋팅하면 됨, (TS가 LMT라면 뭐 별로 할것도 없지만..) .NOLOGGING 설정은 간단히 redo log entry가 생성되질 않는다고 생각하면 되고... ( index생성시 오류가 발생하면 재생성하면 되므로 복구를 고려하지 않은 설정값임. ) .PARALLEL 4 로 설정하여 동시에 4개의 cpu가 동작하도록 설정하였음.(cpu수의 절반 정도로 설정하도록.)

CREATE UNIQUE INDEX ODSMARS.pdw_ods_branch_sales_result_UK ON ODSMARS.PDW_ODS_BRANCH_SALES_RESULT
(AFFILIATE_BRANCH_CODE, 
DIVISION_CODE, 
YYYYMMDD, 
BUYER_CODE, 
MODEL, 
SUFFIX, 
RETURN_FLAG, 
WORK_DATE, 
DOM_EXP_FLAG, 
SALESMAN_CODE, 
WH_CODE, 
ATTRIBUTE4, 
ATTRIBUTE6, 
ATTRIBUTE8, 
ATTRIBUTE9, 
WH_LOCATION, 
CUST_PO_NO, 
SALES_TYPE, 
ATTRIBUTE11, 
ATTRIBUTE12, 
ATTRIBUTE13, 
ATTRIBUTE16, 
ATTRIBUTE17, 
ATTRIBUTE18, 
ACT_COM_CODE, 
ACT_DIV_CODE, 
PKG_MODEL, 
PKG_SUFFIX)
tablespace ORAMARSX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 100M
next 50M
)
NOLOGGING
PARALLEL 4 ;

Index created.
Elapsed: 00:17:59.55

5.ODSMARS.pdw_ods_branch_sales_result_UK index 속성변경


index 생성완료 후에는 index 속성값을 변경. nologging -> logging parallel -> noparallel

alter index ODSMARS.pdw_ods_branch_sales_result_UK logging noparallel;

6. pga 설정 및 session의 sort_area_size 원복


session을 원복한다. (session 종료해도 상관없음.)

alter session set workarea_size_policy=auto;

7. 신규 temp TS 생성 및 default temp TS 변경


7.8.9번은 임시로 늘려는 temp TS를 원복시키는 작업임.

create temporary tablespace imsi tempfile '/dw07/oradata/CW27ORA/imsi01.dbf' size 1000m extent management local uniform size 1m;
alter database default temporary tablespace imsi;

8. 기존 temp TS 삭제 및 재생성

drop tablespace TEMP including contents and datafiles; 
create temporary tablespace temp tempfile '/dw09/oradata/CW27ORA/temp01.dbf' size 3000m extent management local uniform size 5m;
alter tablespace temp add tempfile '/dw04/oradata/CW27ORA/temp02.dbf' size 3000m;
alter tablespace temp add tempfile '/dw06/oradata/CW27ORA/temp03.dbf' size 3000m;
alter tablespace temp add tempfile '/dw07/oradata/CW27ORA/temp04.dbf' size 3000m;

9. 신규 temp TS 삭제 및 default temp TS 변경

alter database default temporary tablespace temp;
drop tablespace imsi including contents and datafiles;

10. 작업완료.