by 물통20병 [Oracle Tuning] 튜닝 fast full scan [2017.08.16 12:00:08]
안녕하세요
fast full scan은 멀티블록으로 읽어들이기 때문에 정렬을 보장하지 않는 다고 알고 있습니다.
더불어 무작위로 읽기 때문에 실행시간이 일정하지 않다는 단점이 있는데
그러면 일반적인 경우에 index fast full scan은 사용하지 않는 편이 좋은건가요??
어떻게 판단을 해야하는지 잘 모르겠습니다.
조언 부탁드리겠습니다. ㅜ
일반적인 상황이라는 것은 없습니다.
그때 그때 상황에 따라 다르게 판단해야 합니다.
일반적인 다른 기능들을 판단할 때는 위와 같이 종합적으로 판단해야 하는데.
index_ffs 의 경우는 좀 독특해서 그냥 판단이 쉬울 듯 하네요.
index_ffs 사용하는 게 좋습니다.
index_ffs 의 경우 사용할지 말지를 결정할 수 있는게 아니라
사용할 수 있는 경우는 극히 제한적이며
사용할 수 있는 경우라면 매우 유용한 기능입니다.
사용하지 말아야 한다는 것은 말이 안됩니다.
적어 놓으신 단점들은 단점이라 하기엔 억지스러운 면이 있네요. 그냥 특성 정도.
보통은 옵티마이저가 index fast full scan을 해야하는 상황이 맞다고 판단하여
활용하게 되는데 옵티마이저가 index_ffs 사용한다고 해서 항상 옳은 것은 아니라고 생각합니다.
index fast full scan을 해야 하는 상황이 맞는지 판단하는 게 제일 중요할 것 같구요.
예를 들어 a, b, c로 구성된 인덱스가 있을 때
select a, b, c from table
where substr(a,1,6) = '201708'
이런 쿼리를 사용하면 index fast full scan이 됩니다.
옵티마이저가 index fast full scan으로 판단했지만
사실은
select a, b, c from table
where a like '201708%' 이 더 나은 쿼리죠.
꼭 사용하지 않아도 될 상황에 index_ffs 하고 있는지,
혹은 별도 인덱스를 추가하여 더 나은 성능을 보장할 필요가 있는지
판단하는 게 중요할 것 같습니다.