SQLPerformanceTuning

  1. Index-Organized Table 혹은 Index-Only access

    • Database는 narrower index를 wider index를 선호하는 경향이 있다.

    • 하지만, wider index를 사용하면 index only (즉, table access 없이 index 정보만을 사용하여 값을 가져옴)의 효과를 가져오는 경우가 있다. 이 경우에는 명시적으로 wider index를 사용하여 table access를 줄일 수 있도록 한다.

    • 오러클에는 Index-Organized Table을 사용할 수 있다.

  2. Partitioned table

    • Oracle extension

    • range condition (주로 date column 사용)

    • very large table을 위한 방법

  3. Non-Null check

    • IS NOT NULL 은 index를 사용하지 않음. 정말 필요한 경우는 적당한 range 값 비교를 할 수 있다. (index가 걸려 있는 경우)

      • e.g, ALL_POSITIVE_COLUMN > -1, DATE_COLUMN > TO_DATE('0001/01/01', 'YYYY/MM/DD')

  4. NOT EQUAL check

    • inequality 비교는 index를 사용하지 않음. 정말 필요한 경우는 IN (나머지 모든 경우의 값... 물론 많지 않다면...) 을 사용!