database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41015 게시물 읽기
No. 41015
append parallel 힌트 질문 드립니다. (사용법)
작성자
검콤이(검콤이)
작성일
2015-11-27 14:04ⓒ
2015-11-27 14:19ⓜ
조회수
8,795

안녕하세요 아래 쿼리에 insert를 위한 /*+ append parallel(a,4)*/ 힌트를 주고 싶은데,

 

저렇게 안에 서브쿼리가 있는 문은 어떻게 append parallel 힌트를 줘야 하나요..

 

고수님들 좀 알려주시면 감사하겠습니다!

 

SELECT '20140319' sikdate

 

, pernr

 

, work_name

 

, COUNT(DECODE(gb, 1, 1)) 1

 

, COUNT(DECODE(gb, 1, 1)) * 1000 2

 

, SUBSTR(MIN(DECODE(gb, 1, regi_time)), 1, 4) 3

 

, COUNT(DECODE(gb, 2, 1)) 4

 

, COUNT(DECODE(gb, 2, 1)) * 1000 5

 

, SUBSTR(MIN(DECODE(gb, 2, regi_time)), 1, 4) 6

 

, COUNT(DECODE(gb, 3, 1)) 7

 

, COUNT(DECODE(gb, 3, 1)) * 1000 8

 

, SUBSTR(MIN(DECODE(gb, 3, regi_time)), 1, 4) 9

 

, COUNT(DECODE(gb, 4, 1)) 10

 

, COUNT(DECODE(gb, 4, 1)) * 1000 11

 

, SUBSTR(MIN(DECODE(gb, 4, regi_time)), 1, 4) 12

 

FROM (SELECT a.pernr, b.work_name, a.regi_time

 

, CASE WHEN a.regi_date||a.regi_time >= 'YYYYMMDDHH24MISS'

 

AND a.regi_date||a.regi_time <= 'YYYYMMDDHH24MISS'THEN 1

 

WHEN a.regi_date||a.regi_time >= 'YYYYMMDDHH24MISS'

 

AND a.regi_date||a.regi_time <= 'YYYYMMDDHH24MISS'THEN 2

 

WHEN a.regi_date||a.regi_time >= 'YYYYMMDDHH24MISS'

 

AND a.regi_date||a.regi_time <= 'YYYYMMDDHH24MISS'THEN 3

 

WHEN a.regi_date||a.regi_time >= 'YYYYMMDDHH24MISS'

 

AND a.regi_date||a.regi_time <= 'YYYYMMDDHH24MISS'THEN 4

 

END AS gb

 

FROM from ABC a

 

INNER JOIN DEF b

 

ON a.term_id = b.Term_id

 

WHERE b.work_name = '대전'

 

AND a.regi_date >= 'YYYYMMDD'

 

AND a.regi_date <= 'YYYYMMDD'

 

AND a.regi_date||a.regi_time >= 'YYYYMMDDHH24MISS'

 

AND a.regi_date||a.regi_time <= 'YYYYMMDDHH24MISS'

 

)

 

WHERE gb IS NOT NULL

 

GROUP BY pernr, work_name

 

;

 

이 글에 대한 댓글이 총 1건 있습니다.

질문하신 상황에서 힌트는 아래처럼 쓰실수 있습니다.

insert /*+append*/ into table

select ... from (

    select /*+parallel(a 4)*/ ... from t1 a ... where ...

) b

group by ...

 

하지만 append hint로는 보통 기대하는 만큼의 성능 향상을 얻기 힘들었던것 같습니다. insert의 속도가 느린 이유는 보통 대상 테이블에 index가 다수 존재하고, 이미 많은 row가 존재하는 상황이어서, index갱신에 많은 비용이 들기 때문이거든요.

고서진(longflat)님이 2015-11-28 07:51에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41021BLOB 문의드립니다. [1]
테스트
2015-12-02
8841
41020Paging 처리방법 [1]
김영주
2015-12-01
8206
41016데이터베이스 SQL 작성했는데 어플라이가 보이지 않아요..!!ㅠㅜ
루루루
2015-11-28
8498
41015append parallel 힌트 질문 드립니다. (사용법) [1]
검콤이
2015-11-27
8795
41014GROUP BY 부분과 ROW의 내용을 컬럼으로 올리는 부분을 조언 부탁드립니다. [4]
이상영
2015-11-25
9218
41013global index 를 조회하는 방법이 있을까요? [4]
지나가는
2015-11-25
8970
41011오라클에서 다른 owner의 트리거 소스 볼 수 있는 권한 부여 방법 [1]
김광표
2015-11-24
8496
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다