안녕하세요. index관련 질문드립니다. 0 2 1,628

by ngbrother [Toad] index 조회시 컬럼값 tode DB [2017.05.12 15:39:19]


안녕하세요.

선배님들.

궁금한 사항이 있어 이렇게 질문드립니다.

테이블에 약 6000만건정도의 데이터가있습니다.

예를들어 조회를 아래와 같이합니다.

SELECT * FROM TABLE WHERE 조건1 = 'A' fetch first 100 rows only;

조건1은 인덱스입니다. 

이렇게 조회를 하였을경우 조회할때마다 100건이 동일하게 나오는지 궁금합니다.

이부분은 실제로 실행을 했을경우 다 다르게 나오거든요. 하지만 

SELECT * FROM TABLE WHERE 조건1 = 'A' AND 조건2 = 'B' fetch first 100 rows only;

조건1과 2 둘다 인덱스입니다. 이렇게 조회를 하면 100건이 항상 동일한 데이터가 출력되는것을 확인하였습니다.

아무리 생각해도 첫번째 조회문도 동일하게 나와야하는것같은데 지식이 부족한지라....정확한이유를 잘 모르겠네요...

두서없이 글작성한것같아 죄송합니다..

도움주시면 감사하겠습니다. 선배님들..ㅜㅜ

 

 

by 마농 [2017.05.12 15:51:39]

인덱스를 통해 정렬된 결과를 얻을 수 도 있으나.
경우에 따라서는 인덱스를 이용했는데도 불구하고 정렬된 결과가 나오지 않을 수 있습니다.
이는 내부 실행 로직이 어떤 방식으로 동작할 지 알수 없기 때문입니다.
실행계획 확인이 필요하구요.
인덱스의 구체적인 정보도 필요합니다.
몇개 항목으로 이루어 졌는지? 어떤 순서로 이루어 졌는지? 등
결론은 ORDER BY 구문이 없이 정렬된 결과를 얻는 것은 100% 보장이 안됩니다.


by ngbrother [2017.05.12 16:22:16]

처음으로 글올렸는데 친절하게 답변 달아주셔서 감사합니다!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입