"템프테이블"의 두 판 사이의 차이
DB CAFE
(→템프테이블(TEMPORARY TABLE)) |
(→임시 테이블 조회) |
||
28번째 줄: | 28번째 줄: | ||
* [DELETE ROWS] 트랜잭션의 종료와 함께 삭제됨 | * [DELETE ROWS] 트랜잭션의 종료와 함께 삭제됨 | ||
* [SUB QUERY CLAUSE] SELECT된 테이블의 구조와 같이 테이블 생성 | * [SUB QUERY CLAUSE] SELECT된 테이블의 구조와 같이 테이블 생성 | ||
+ | ---- | ||
=== 템프 테이블 모니터링 === | === 템프 테이블 모니터링 === |
2019년 6월 21일 (금) 20:39 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 템프테이블(TEMPORARY TABLE)[편집]
1.1 템프테이블(TEMPORARY) 생성[편집]
CREATE GLOBAL TEMPORARY TABLE AAAA_TEMP(
A VARCHAR2(15) NOT NULL,
B NUMBER NOT NULL
) ON COMMIT [PRESERVE ROWS | DELETE ROWS];
1.2 서브 쿼리를 이용한 임시 테이블 생성[편집]
CREATE GLOBAL TEMPORARY TABLE [TABLE NAME](
)
ON COMMIT [PRESERVE ROWS | DELETE ROWS];
AS ([SUB QUERY CLAUSE])
1.3 임시 테이블 조회[편집]
SELECT TABLE_NAME, TEMPORARY, DURATION
FROM USER_TABLES
WHERE TEMPORARY = 'Y'
- [PRESERVE ROWS] 트랜잭션의 종료 (commit)후에도 남아있음 세션종료시 데이터가 삭제됨
- [DELETE ROWS] 트랜잭션의 종료와 함께 삭제됨
- [SUB QUERY CLAUSE] SELECT된 테이블의 구조와 같이 테이블 생성
1.4 템프 테이블 모니터링[편집]
SELECT /*+ ordered */ "SID",
s.serial# "Serial",
s.MODULE "Module",
s.program "Program",
u.TABLESPACE "TS 명",
u.CONTENTS "Cont.",
u.blocks "Temp Blocks",
((u.blocks*v.value)/(1024*1024)) "Temp Size(MB)"
, q.sql_id
-- substr(q.sql_text,1,50) "SQL"
-- , substr(p.sql_text,1,50) "이전 SQL"
FROM v$sort_usage u,
v$session s,
v$sqltext q,
v$sqltext p,
(SELECT value
FROM v$parameter
WHERE name = 'db_block_size') v
WHERE s.saddr = u.session_addr
AND s.sql_hash_value = q.hash_value(+)
AND q.piece = 0
AND s.prev_hash_value = p.hash_value(+)
AND p.piece = 0
;