oracle rowid는 바로 찾아가서 주소
regDate >= 'dd'MM
이런식으로 되어있을때, 오라클은 regDate를 문자로 바꿔서 비교해서 이럴경우는 인덱스가 없어서 처음부터 다 찾는다.
그래서 우측에 있는 놈들에게 to_date라는 그러한 함수로 바꿔주면 인덱스를 건드리지 않고 굿
또한 이러한 함수는 포맷을 지정해줄수도 있어서 훨씬 낫다.
인덱스가 잡혀있지 않으면 풀스캔을 하기때문에 어차피 소용이
인덱스라는건, select 로 가면 빠르고 다만 update delete등을 느려질수 있다. 그리고 하드에 조금더 데이터를 쓴다.
조건을 들어가는 컬럼은 성능을 위해서 인덱스를 많이 잡음.. 다만 4%정도 이상을 잔뜩 불러오는 결과라면, 풀스캔이 낫다.
장단점이 있단다.
앞에 %가 있으면 무조건 인덱스를 사용하지 않음.
인덱스는 앞에서부터 찾아가는 그런거임 일종의 목차인데, 앞에 % 나 _ 가 있으면 찾을수가 읍음.
일반적인 걸로는 게시물 검색을 하기가 힘들기 때문에 서치엔진이 따로 필요하기도 하다. 형태소분석등을 통해서 하기도 한다.
참고링크
http://www.zetswing.com/bbs/board.php?bo_table=ORACLE_TIP&wr_id=4&page=3
대용량 데이터베이스 솔루션
'데이터베이스' 카테고리의 다른 글
sql joins 관련 이미지 (0) | 2014.10.16 |
---|---|
decode 와 case (0) | 2014.10.16 |
oracle distinct (0) | 2014.09.11 |
oracle 조인 (0) | 2014.09.11 |
oracle 조인 (0) | 2014.09.11 |