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
운영게시판
최근게시물
MS-SQL Q&A 5849 게시물 읽기
No. 5849
where 절 질문입니다.
작성자
초롱이
작성일
2011-02-28 20:00
조회수
6,915

select 시 where 절의 순서와 관련하여 성능에 영향을 미치는지 궁금합니다.

select *

from table_name

where aaa = 1

and bbb = 2

and ccc = 3

이런식으로 쿼리가 있을 경우 aaa 는 인덱스 컬럼이라고 가정하였을때 aaa, bbb, ccc가 오는 순서에 따라 성능에 영향을 미치나요?

아니면 전혀 상관이 없는지요... 궁금합니다.

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

mssql db 는 cbo(cost base optimizer) 를 기본 아키텍쳐로 가지고 있습니다.

따라서 where 의 컬럼 순서는 중요하지 않습니다.

의미대로 mssq의  옵티마이져는 where 조건중 가장 적은 비용으로 데이터 set 를 가져 올 수 있는 컬럼을 먼저 선택하게 됩니다. (컬럼의 순서에 관계없이)

물론 where 조건의 컬럼 모두에 index가 걸려 있어도 순서에 관계없이... 가장 비용이 적은 컬럼을 먼저 선정하여 index로 이용하게 됩니다.

 

 

나그네님이 2011-03-02 14:35에 작성한 댓글입니다. Edit

//나그네님
Rule Based Optimizer에서는 WHERE절의 순서에 영향을 받고
Cost Based Optimizer에서는 영향을 받지 않는다
라고 해석해도 되겠습니까?

감사합니다 많은 도움 되었습니다.

초롱이님이 2011-03-02 15:46에 작성한 댓글입니다.
이 댓글은 2011-03-02 15:47에 마지막으로 수정되었습니다. Edit

rule base도 영향을 받지 않습니다.

그렇지만.. rule base 는 where 절의 조건에 따라서 옵티마이져가 어떤 컬럼을 먼저 선택할 것인가를

결정하게 됩니다.

가령.. where col1 = '나그네' and col2 like '나그네%'  이런 두 조건이 있다고 칩시다.

rule base 의 옵티마이져에서는 where 조건이 = 이 % 보다 우선 순위로 여겨서 = 조건의 컬럼을

인덱스로 선택하게 됩니다. 이를 선택의 우선 순위라고 합니다. (rule base에서)

네이버나 구글에서 rule base 에서 인덱스의 우선 순위라고 검색해 보면... rule base에서 where 조건

컬럼의 어떤 조건이 제일 먼저 인덱스 사용에 우선시 되는지 검색이 가능합니다.

아마도 이는 oracle 의 과거 rule base(7,8) 버전에서나 가능한 이야기 겠죠..

덤으로 이런 rule base 에서는 from 절의 테이블 순서도 driving table 선정에도 영향을 주었답니다.

따라서 join 시 driving table 의 순서에 따라서 where 절의 인덱스 컬럼의 순서도 영향을 받았겠죠?

하지만 현재 10g 이상에서는 rule base가 기본적으로 기술 지원되지 않기 때문에.. 대세는 cost base 입니다. 따라서 rule base는 크게 염려하거나 신경쓰지 않으셔도 될거 같습니다.

도움이 되셨기를....

나그네님이 2011-03-07 14:53에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
58542개이상중복되는 Row 얻어오는방법이있을까요.. [1]
육식동물
2011-03-14
6728
5852MSSQL2005에서 인덱스를 타지를 않습니다..
김민석
2011-03-08
6710
5850긴급_도와주세요 [1]
홍광표
2011-02-28
6641
5849where 절 질문입니다. [3]
초롱이
2011-02-28
6915
5847테이블 결과 합치기 가능한가요? [1]
최지훈
2011-02-23
8025
5846MS SQL 2005 한글 깨짐 help me pls pls pleeeeeese [1]
2011-02-22
7720
5845constratint 조회하기 [1]
김상환
2011-02-17
6133
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다