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
운영게시판
최근게시물
Sybase Q&A 2432 게시물 읽기
No. 2432
간단한 튜닝 관련 질문입니다.
작성자
AZA
작성일
2009-03-05 16:49
조회수
8,010

질문이 있습니다.

SELECT    컬럼01, 컬럼02, 컬럼03
FROM      TABLE1 A
        ,(SELECT    직원번호
          FROM      TABLE2
          WHERE     퇴직년월일 >= '20080101' ) B
WHERE     A.직원번호       = B.직원번호

이런 쿼리에서

TABLE_ALIAS A 는 6천만건(컬럼 50개)
TABLE_ALIAS B 는   3만건 일때,

<질문1>
일반적인 튜닝포인트에 보면 작은 테이블을 앞에 두라고 하잖아요.

<방법1>처럼 FROM  절에서 앞에두라는 건가요?
<방법2>처럼 WHERE 절에서 앞에두라는 건가요?

<방법1>
SELECT    컬럼01, 컬럼02, 컬럼03
FROM     (SELECT    직원번호
          FROM      TABLE2
          WHERE     퇴직년월일 >= '20080101' ) A
         ,TABLE1 B
WHERE     A.직원번호       = B.직원번호

<방법2>
SELECT    컬럼01, 컬럼02, 컬럼03
FROM      TABLE1 A
        ,(SELECT    직원번호
          FROM      TABLE2
          WHERE     퇴직년월일 >= '20080101' ) B
WHERE     B.직원번호       = A.직원번호


<질문2>
TABLE1을      SELECT 직원번호 FROM TABLE1
하는게 좀더 효과적인가요?

 

 

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

[질문1답변]

방법1 과 방법2는 수행시 동일하게 수행될 것으로 예상되는데요.

플랜을 만들때, from 절의 테이블의 순서는 의미가 없습니다.

where 절 조건들 조차 순서가 의미가 없습니다. where 절 조건들에 대한 통계정보를 계산해서

최적화된 플랜을 만드니까요.

 

 

[질문2답변]

select 컬럼01, 컬럼02, 컬럼03

from TABLE1 A, TABLE2 B

where B.직원번호 = A.직원번호 and B.퇴직년월일 >= '20080101'

 

하시면, nested loop 조인으로 잘 될 것 같은데요..

플랜은 해당 테이블의 조건에 맞는 건수와 분포, 인덱스 유무, I/O 에 따라 달라 질 수 있어서 머라 장담 하기

어렵지만, B.퇴직년월일 조건때문에 outer 혹은 driving 테이블로 동작할 것 같네요.

 

TABLE1 이나 TABLE2가 직원번호에 대해 대충 1:1관계라면,

TABLE1 의 조건과 TABLE2의 조건을 다 주고, parallel 쿼리로 처리한다면,

Hash Join 도 성능이 빠를 수도 있을것 같아요. IO는 엄청나겠지만요

 

 

그나저나 쿼리 내용은 2008년 이후 퇴직자를 찾는 쿼리인데, 수가 많네요...ㅡㅡ; 덜덜덜

 

 

다다님이 2009-03-05 17:46에 작성한 댓글입니다.
이 댓글은 2009-03-05 18:03에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2435수정 : TO_CHAR 대체 질문 드려요..^^; [2]
1남2녀
2009-03-10
11894
2434조건의 우선순위 [2]
karerina
2009-03-10
8348
2433시스템정보를 이용해서 테이블생성 스크립트작성 방법 좀 알려주세요(초보) [2]
지젤
2009-03-09
9240
2432간단한 튜닝 관련 질문입니다. [1]
AZA
2009-03-05
8010
2431대용량 데이터 삽입 [3]
임태근
2009-03-05
9792
2430bcp in 그리고 중단 rollback [2]
권환희
2009-03-05
8295
2429Sybase에 오라클의 Materialized View와 같은것이 있나요? [2]
너무몰라서..
2009-03-04
7720
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다