본문 바로가기

Index Range Scan2

[4] 인덱스 확장기능 사용법 이 글은 [친절한 SQL 튜닝] 을 학습하고 정리한 글입니다. 3번 게시물까지는 Index Range Scan 중심으로 다루었는데 Index Full Scan, Index Unique Scan, Index Skip Scan, Index Fast Full Scan 등 인덱스 스캔 방식은 다양합니다. 하나하나 알아보겠습니다. Index Range Scan B* Tree의 가장 일반적인 액세스 방식인데요 인덱스 Root에서 Leaf 까지 값을 비교하며 수직적으로 탐색한 후에 Leaf에서부턴 필요한 범위만 스캔합니다. 인덱스를 Range Scan 하려면 선두 컬럼을 가공하지 않은 상태로 조건절에서 사용해야 합니다. 중요한 점은 인덱스 스캔범위와 테이블 액세스 횟수를 얼마나 줄일 수 있냐로 결정됩니다. selec.. 2020. 11. 2.
[3] 인덱스 기본 사용법 이 글은 [친절한 SQL 튜닝] 을 학습하고 정리한 글입니다. 인덱스 사용의 기본은 Index Range Scan 하는 방법을 이해하는 것인데요. 리프 블록에서 스캔 시작점을 찾아 거기서부터 스캔하다가 중간에 멈추는 것을 의미합니다. 인덱스 컬럼을 가공하면 인덱스를 이용한 Range Scan을 할 수 없게 됩니다. 인덱스 컬럼을 가공한다는 것은, 인덱스 컬럼이 제공하는 데이터의 일부 혹은 변형된 값을 사용하여 쿼리를 하는 것을 의미합니다. 예를 들어, "날짜" 에 대해서 index가 구성되어 있었다고 가정을 하면 날짜가 2007년 6월 1일 ~ 2007년 6월 31일에 발생한 이벤트에 대해 쿼리를 날리면 2007년 6월 1일을 인덱스로 탐색을 시켜서 Leaf 노드를 찾을 수 있습니다. 그런데 만약 년도에.. 2020. 10. 30.