1. ALTER TABLE 테이블명_1 NOLOGGING;
- 해당 테이블에서 작업시 훨씬 적은 양의 redo log만을 생성한다.
- NOLOGGING으로 변경했던 테이블은 사용 후 다시 LOGGING 상태로 변경하는게 좋다.
2. insert /*+append*/ into 테이블명_1
- APPEND 힌트를 줌으로써 DIRECT PATH INSERT가 가능하도록 한다.
3. insert /*+ PARALLEL(테이블명 프로세스수) */
- 병렬처리 힌트를 줌으로 작업 속도가 증가한다.
4. CREATE INDEX 인덱스 명 ON 테이블명 (필드)
TABLESPACE 테이블스페이스명
NOLOGGING
PARALLEL 8;
- 인덱스 생성시에도 NOLOGGING과 PARALLEL을 적용하여 사용 할 수 있다
다만 인덱스 생성 후 LOGGING 처리와 NOPARALLEL로 변경 적용 하여야 로깅처리 및 프로세스 사용을 적게 하게 된다.
PARALLEL을 변경하지 않으면 생성시 사용한 프로세스 단위로 조회도 하게 되니 참고 !
- ALTER INDEX 인덱스명 LOGGING NOPARALLEL;
5. 대량 테이블 SELECT 쿼리 수행시 시스템 자원을 활용하여 수행시간을 단축 시킬때 PARALLEL 힌트를 많이 사용한다.
SELECT /*+ PARALLEL(테이블명) */ FROM 테이블명
6. DML 문장 (INSERT, DELETE, UPDATE)를 병렬로 수행하기 위해서는 현재 접속중인 세션을 DML로 지정해야만 병렬처리가 가능하다.
ALTER SESSION ENABLE PARALLEL DML;
사용 후 해당 세션의 DML을 해제 해주는게 좋다.
ALTER SESSION DISABLE PARALLEL DML;
7.
-- 1. 테이블 스페이스 사용량 SELECT SUBSTR(A.TABLESPACE_NAME,1,30) TABLESPACE, ROUND(SUM(A.TOTAL1)/1024/1024,1) "TOTALMB", ROUND(SUM(A.TOTAL1)/1024/1024,1)-ROUND(SUM(A.SUM1)/1024/1024,1) "USEDMB", ROUND(SUM(A.SUM1)/1024/1024,1) "FREEMB", ROUND((ROUND(SUM(A.TOTAL1)/1024/1024,1)-ROUND(SUM(A.SUM1)/1024/1024,1))/ROUND(SUM(A.TOTAL1)/1024/1024,1)*100,2) "USED%" FROM (SELECT TABLESPACE_NAME,0 TOTAL1,SUM(BYTES) SUM1,MAX(BYTES) MAXB,COUNT(BYTES) CNT FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME UNION SELECT TABLESPACE_NAME,SUM(BYTES) TOTAL1,0,0,0 FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A GROUP BY A.TABLESPACE_NAME ORDER BY TABLESPACE; -- 2. 테이블 스페이스별 전체 용량 확인 SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 TOTAL_SIZE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME; -- 3. 테이블 스페이스 파일별 남은용량 확인 SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 FREE_SIZE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME; -- 4. 테이블 스페이스 파일 확인 SELECT * FROM SYS.DBA_DATA_FILES; -- 5. 테이블 스페이스 추가 ALTER TABLESPACE 테이블 스페이스명 ADD DATAFILE '데이터파일 경로 및 파일명.DBF' SIZE 30720M AUTOEXTEND ON; -- 6. TEMP 테이블 스페이스 추가 ALTER TABLESPACE 테이블 스페이스명 ADD TEMPFILE '데이터파일 경로 및 파일명.DEF' SIZE 30720M AUTOEXTEND ON; -- 7. 쿼리 실행 시간 확인 SET TIMING ON; -- 8. 대량 데이터 인덱스 생성시 Sort area size 조절 ALTER SESSION SET SORT_AREA_SIZE = 10000000; -> 10M --9. 실행중인 SQL확인용 SELECT a.osuser, a.SID, a.serial#, a.status, b.sql_text FROM v$session a, v$sqlarea b WHERE a.sql_address = b.address
'SQL > Oracle' 카테고리의 다른 글
오라클 데이터 백업 및 복원 (0) | 2019.02.13 |
---|---|
Oracle DataBase 문자셋과 언어셋 확인 및 변경하기 (0) | 2018.08.27 |
오라클 사용자 생성 및 권한주기 (0) | 2018.08.27 |