"템프테이블 확장"의 두 판 사이의 차이
DB CAFE
(새 문서: = 템프테이블 확장 절차 = 1. datafile 추가 ---------------- 대용량 index생성으로 인해 예상되는 증가량을 index Tablespace(이하 TS)영역에 반영. alter...) |
|||
4번째 줄: | 4번째 줄: | ||
---------------- | ---------------- | ||
대용량 index생성으로 인해 예상되는 증가량을 index Tablespace(이하 TS)영역에 반영. | 대용량 index생성으로 인해 예상되는 증가량을 index Tablespace(이하 TS)영역에 반영. | ||
− | + | <source lang=sql> | |
alter tablespace ORAMARSX add datafile '/dw19/oradata/CW27ORA/oramarsx17.dbf' size 3000M; | 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 '/dw20/oradata/CW27ORA/oramarsx18.dbf' size 3000M; | ||
13번째 줄: | 13번째 줄: | ||
-------------------- | -------------------- | ||
index생성작업 자체가 대용량의 sort작업을 동반하므로 임시적으로 temp size를 늘려줌. | index생성작업 자체가 대용량의 sort작업을 동반하므로 임시적으로 temp size를 늘려줌. | ||
− | + | <source lang=sql> | |
alter tablespace temp add tempfile '/dw02/oradata/CW27ORA/temp05.dbf' size 3000M; | 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 '/dw03/oradata/CW27ORA/temp06.dbf' size 3000M; | ||
25번째 줄: | 25번째 줄: | ||
sort_area_size를 적절하게 늘려주기를 바람. | sort_area_size를 적절하게 늘려주기를 바람. | ||
병렬로 처리를 할것이기 때문에 현재의 session이 Parellel query처리가 가능한지도 확인하고.. | 병렬로 처리를 할것이기 때문에 현재의 session이 Parellel query처리가 가능한지도 확인하고.. | ||
− | + | <source lang=sql> | |
alter session set workarea_size_policy=manual; | alter session set workarea_size_policy=manual; | ||
alter session set sort_area_size = 209715200; | alter session set sort_area_size = 209715200; | ||
+ | </source> | ||
-------------------------------------------------- | -------------------------------------------------- | ||
.병렬query 지원여부 확인 | .병렬query 지원여부 확인 | ||
+ | <source lang=sql> | ||
select * from v$option where parameter = 'Parallel execution'; | select * from v$option where parameter = 'Parallel execution'; | ||
+ | </source> | ||
-------------------------------------------------- | -------------------------------------------------- | ||
39번째 줄: | 42번째 줄: | ||
.NOLOGGING 설정은 간단히 redo log entry가 생성되질 않는다고 생각하면 되고... ( index생성시 오류가 발생하면 재생성하면 되므로 복구를 고려하지 않은 설정값임. ) | .NOLOGGING 설정은 간단히 redo log entry가 생성되질 않는다고 생각하면 되고... ( index생성시 오류가 발생하면 재생성하면 되므로 복구를 고려하지 않은 설정값임. ) | ||
.PARALLEL 4 로 설정하여 동시에 4개의 cpu가 동작하도록 설정하였음.(cpu수의 절반 정도로 설정하도록.) | .PARALLEL 4 로 설정하여 동시에 4개의 cpu가 동작하도록 설정하였음.(cpu수의 절반 정도로 설정하도록.) | ||
− | + | <source lang=sql> | |
CREATE UNIQUE INDEX ODSMARS.pdw_ods_branch_sales_result_UK ON ODSMARS.PDW_ODS_BRANCH_SALES_RESULT | CREATE UNIQUE INDEX ODSMARS.pdw_ods_branch_sales_result_UK ON ODSMARS.PDW_ODS_BRANCH_SALES_RESULT | ||
(AFFILIATE_BRANCH_CODE, | (AFFILIATE_BRANCH_CODE, | ||
89번째 줄: | 92번째 줄: | ||
nologging -> logging | nologging -> logging | ||
parallel -> noparallel | parallel -> noparallel | ||
− | + | <source lang=sql> | |
alter index ODSMARS.pdw_ods_branch_sales_result_UK logging noparallel; | alter index ODSMARS.pdw_ods_branch_sales_result_UK logging noparallel; | ||
− | + | </source> | |
6. pga 설정 및 session의 sort_area_size 원복 | 6. pga 설정 및 session의 sort_area_size 원복 | ||
-------------------------------------------- | -------------------------------------------- | ||
session을 원복한다. (session 종료해도 상관없음.) | session을 원복한다. (session 종료해도 상관없음.) | ||
− | + | <source lang=sql> | |
alter session set workarea_size_policy=auto; | alter session set workarea_size_policy=auto; | ||
− | + | </source> | |
7. 신규 temp TS 생성 및 default temp TS 변경 | 7. 신규 temp TS 생성 및 default temp TS 변경 | ||
-------------------------------------------- | -------------------------------------------- | ||
7.8.9번은 임시로 늘려는 temp TS를 원복시키는 작업임. | 7.8.9번은 임시로 늘려는 temp TS를 원복시키는 작업임. | ||
− | + | <source lang=sql> | |
create temporary tablespace imsi tempfile '/dw07/oradata/CW27ORA/imsi01.dbf' size 1000m extent management local uniform size 1m; | create temporary tablespace imsi tempfile '/dw07/oradata/CW27ORA/imsi01.dbf' size 1000m extent management local uniform size 1m; | ||
alter database default temporary tablespace imsi; | alter database default temporary tablespace imsi; | ||
− | + | </source> | |
8. 기존 temp TS 삭제 및 재생성 | 8. 기존 temp TS 삭제 및 재생성 | ||
− | + | <source lang=sql> | |
drop tablespace TEMP including contents and datafiles; | 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; | create temporary tablespace temp tempfile '/dw09/oradata/CW27ORA/temp01.dbf' size 3000m extent management local uniform size 5m; | ||
112번째 줄: | 115번째 줄: | ||
alter tablespace temp add tempfile '/dw06/oradata/CW27ORA/temp03.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; | alter tablespace temp add tempfile '/dw07/oradata/CW27ORA/temp04.dbf' size 3000m; | ||
− | + | </source> | |
9. 신규 temp TS 삭제 및 default temp TS 변경 | 9. 신규 temp TS 삭제 및 default temp TS 변경 | ||
+ | <source lang=sql> | ||
alter database default temporary tablespace temp; | alter database default temporary tablespace temp; | ||
drop tablespace imsi including contents and datafiles; | drop tablespace imsi including contents and datafiles; | ||
− | + | </source> | |
10. 작업완료. | 10. 작업완료. |
2019년 7월 4일 (목) 14:40 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
템프테이블 확장 절차[편집]
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를 늘려줌.
<source lang=sql>
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처리가 가능한지도 확인하고..
<source lang=sql>
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
<source lang=sql>
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. 작업완료.