일반적으로 정규화시 입력/수정/삭제 성능이 향상되며, 반정규화 시 조인 성능이 향상된다.
1.자주 사용되는 테이블에 접근하는 프로세스의 수가 많고 항상 일정한 범위만을 조회하는 경우에 반정규화를 검토한다.
2.테이블에 대량의 데이터가 있고 대량의 데이터 범위를 자주 처리하는 경우에 처리범위를 일정하게 줄이지 않으면 성능을 보장할 수 없을 경우에 반정규화를 검토한다.
3.통계성 프로세스에 의해 통계 정보를 필요로 할 때 별도의 통계테이블(반정규화 테이블)을 생성한다.
4.테이블에 지나치게 많은 조인(Join)이 걸려 데이터를 조회하는 작업이 기술적으로 어려울 경우 반정규화를 검토한다.
1.VIEW 사용: 지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 기술적으로 어려울 경우 VIEW를 사용한다 (VIEW가 조회의 성능을 향상X
개발자별로 SQL문장을 만드는 방법에 따라 성능저하가 나타날 수 있기때문.)
2.클러스터링: 대량의 데이터 처리나 부분처리에 의해 성능이 저하되는 경우에 클러스터링을 적용하거나 인덱스를 조정함으로써 성능을 향상시킬 수 있다.(조회가 많고 인덱스를 통한 성능향상이 불가능하다면 클러스터링을 사용)
3.파티셔닝: 대량의 데이터는 PK의 성격에 따라 부분적인 테이블로 분리할 수 있다. 파티셔닝 키에 의해 물리적 저장공간 분리.
4.캐시: 응용 애플리케이션에서 로직을 구사하는 방법을 변경함으로써 성능을 향상시킬 수 있다.