Index에 관련된 사항#

  1. 인덱스 칼럼을 함수등을 사용하여 변형하지 말라[1]
  2. NULL인지 아닌지 체크하는 조건을 사용하지 말라[2]
  3. NOT비교 검색을 가급적 사용하지 말라[3]
  4. OLTP 애플리케이션에서 Merge join, Hash join의 경우 전체범위처리를 해서 성능저하를 초래할수 있다. 특별한 경우가 아닌한 Nested Loop 방식으로 join한다.
  5. Nested Loop join시 조인순서와 Driving table의 범위가 성능에 직접적인 영향을 미치게 되므로 적적성 여부를 확인해야 한다.
  6. distinct 키워드의 경우 내부적으로 정렬을 하게 되므로 유일한 데이터가 확실하다면 사용하지 않도록 한다.
  7. 필요이상의 함수를 사용하지 않도록 한다. 여기에는 NVL과 같은 함수도 포함된다.
  8. 인라인 뷰를 적절히 사용하도록 한다.
  9. 칼럼의 타입변환을 가급적이면 방지한다. 경우에따라 인덱스를 타지 못하는 문제를 야기한다. 다르게 보면 조인의 대상이 되는 칼럼은 타입이 반드시 같을 필요가 있다.

인덱스 칼럼을 함수등을 사용하여 변형하지 말라[#1]#

SELECT *
FROM test
WHERE value*100

는 다음처럼 바꿔준다.

SELECT *
FROM test
WHERE value > 100/3

NULL인지 아닌지 체크하는 조건을 사용하지 말라[#2]#

SELECT *
FROM test
WHERE value IS NOT NULL

는 다음처럼 바꿔준다.

SELECT *
FROM test
WHERE value > ' '

NOT비교 검색을 가급적 사용하지 말라[#3]#

SELECT *
FROM test
WHERE value <> 5

는 다음처럼 바꿔준다.

SELECT *
FROM test
WHERE value > or value < 5

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-6) was last changed on 08-Jan-2008 21:46 by DongGukLee