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 34699 게시물 읽기
No. 34699
쿼리를 최적화 하고 싶어여.. 조언 부탁드려여
작성자
오혜진
작성일
2008-11-06 15:12ⓒ
2008-11-06 15:20ⓜ
조회수
2,531

마스터테이블 a, 코드테이블   c 가 있습니다.

a 테이블에 컬럼이 a1, a2, a3,  ac1, ac2, ac3, ac4, ac5, ac6 가 있습니다,.

ac1, ac2, ac3, ac4, ac5, ac6 컬럼은 코드값입니다.

코드테이블인 c 테이블에는 컬럼이 cid, cname, cpid 입니다.


따라서 마스터테이블을 조회하고자 할 경우

select

    a1, a2, a3,  ac1, ac2, ac3, ac4, ac5, ac6

, c1.cname

, c2.cname

, c3.cname

, c4.cname

, c5.cname

, c6.cname

from a, c c1, c c2, c c3, c c4, c c5, c c6

where 

and c1.pid = 'A'

and c2.pid = 'B'

and c3.pid = 'C'

and c4.pid = 'D'

and c5.pid = 'E'

and c6.pid = 'F'

and a.ac1 = c1.cid(+)

and a.ac2 = c2.cid(+)

and a.ac3 = c3.cid(+)

and a.ac4 = c4.cid(+)

and a.ac5 = c5.cid(+)

and a.ac6 = c6.cid(+)


이런 형태로 사용하고 있습니다.

최적화된 쿼리를 사용하고 싶습니다. 

코드테이블을 한번만 읽어서 조인한다거나 하는...

마스터테이블은 대략 천만건 정도 되고 코드테이블은 3천건 정도 됩니다.

위의 형태는  파일 I/O 쓰기 오류가 발생 합니다.

고수님들의 특별한 조언 부탁드립니다.




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

개선 효과에 대해선 장담 못하겠구요.
일단 이런 방법도 있다는 것만 알려드릴께요.
답은 직접 구하셔야 할듯 합니다.
1. 스칼라서브쿼리
2. 사용자 Function 생성 사용

마농(manon94)님이 2008-11-06 15:18에 작성한 댓글입니다.
이 댓글은 2008-11-06 15:19에 마지막으로 수정되었습니다.

- 파일 I/O 쓰기 오류가 발생하는것은 SQL 보다는 DATABASE의 설정등 다른 부분에 문제가 있는것 같습니다


- c1.cid(+), c2.cid(+), ... 등에서 OUTER JOIN (+) 연산자를 사용하기 때문에 인덱스를 사용할 수 없습니다   (+) 연산자가 꼭 필요한지요 ?   가능하다면 사용하지 않도록 개선작업을 하면 성능개선의 여지가 있는것 같습니다


- c 테이블의 pid 컬럼에 인덱스가 걸려 있는지요 ?  없으면 추가 후 테스트 해보세요


- a 테이블 1000만건 전체를 스캔하는것을 보니 아마도 OffLine  작업인 것 같습니다

   CPU가 여러장일 경우 Parallel 옵션을 추가하시면 쿼리 성능이 빨라질 수 있습니다


- DATABASE 파라메터가 적절하게 설정되었는지 확인해 보세요  예> db_cache_size 등등



jjkim0@hotmail.com

김종정님이 2008-11-20 22:09에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
34705[긴급]시작일-종료일값으로 일자_요일_주차 값 구하기 [1]
긴급정비
2008-11-08
4529
34702opensuse 11에 oracle 9i 설치좀 도와주세요ㅠ.ㅠ
lincle
2008-11-07
1849
34700drsys 스페이스가 full 됬는데 [1]
mis
2008-11-06
1862
34699쿼리를 최적화 하고 싶어여.. 조언 부탁드려여 [2]
오혜진
2008-11-06
2531
34698다중사용자 상황에서 외래키 없이 참조 무결성을 유지하기 [1]
김흥수
2008-11-06
2665
34697다중insert 문의
옹달샘
2008-11-06
2735
34696DB 초보 질문 드려요. 바쁘지 않으시면 한번 봐주세요 ^^ [1]
김세영
2008-11-06
2740
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다