데이터베이스 성능

데이터베이스를 디자인할 때는 데이터베이스가 모든 중요한 기능을 정확하고 빠르게 수행할 수 있도록 해야 합니다. 일부 성능 문제는 데이터베이스를 제작한 후에 해결할 수 있습니다. 그러나 다른 성능 문제는 데이터베이스 디자인이 잘못되어 발생될 수 있으므로 데이터베이스의 구조와 디자인을 변경해야만 해결될 수 있습니다.

데이터베이스를 디자인하고 구현할 때 데이터베이스의 대형 테이블과 데이터베이스가 수행할 복잡한 프로세스를 확인해야 합니다. 또한 이러한 테이블을 디자인할 때 특히 성능이 고려되어야 합니다. 또한 데이터베이스에 액세스하는 사용자의 수가 많아질 때 성능에 미치는 영향도 고려해야 합니다.

디자인을 변경하여 성능이 향상되도록 하는 예는 다음과 같습니다.

  • 수십만 개의 행이 있는 테이블을 요약해서 매일 보고서를 작성하려면 보고서에서만 사용될 미리 집계된 데이터가 있는 테이블에 열을 추가하면 됩니다.

  • 데이터베이스가 더 정규화될 수 있습니다. 즉 데이터베이스가 여러 개의 상관 관계가 있는 작은 테이블로 정의됩니다. 데이터베이스는 이 테이블의 데이터를 처리할 때 관련 데이터를 결합하기 위해 추가로 많은 작업을 수행해야 합니다. 이러한 추가적인 작업으로 인해 데이터베이스의 성능이 저하될 수 있습니다. 이러한 경우 데이터베이스의 정규화를 조금 해제하여 복잡한 프로세스를 단순화하면 성능이 향상될 수 있습니다.

하드웨어 고려 사항

일반적으로 데이터베이스가 클수록 하드웨어 요구 사항이 많아집니다. 그러나 동시 사용자 및 세션 수, 트랜잭션 처리량, 데이터베이스 내의 작업 유형 등의 다른 결정 요소에 의해서도 영향을 받습니다. 예를 들어 일반적으로 규모가 큰 기업에서 자주 분석되는 판매, 제품 및 고객 정보가 들어 있는 1TB의 데이터 웨어하우스보다는 자주 업데이트되지 않는 데이터가 들어 있는 학교 도서관의 데이터베이스에 대한 하드웨어 요구 사항이 더 적습니다. 디스크 저장소에 대한 요구 사항 외에도 보다 많은 데이터가 메모리에 캐시되고 많은 데이터를 참조하는 쿼리가 신속하게 처리될 수 있도록 많은 메모리와 고속 프로세서가 데이터 웨어하우스에 필요합니다.

I/O 하위 시스템인 저장소 엔진은 모든 관계형 데이터베이스의 주요 구성 요소이며 계획의 대부분을 차지합니다. 성공적인 데이터베이스 구현을 위해서는 일반적으로 프로젝트의 초기 단계에서 신중한 계획이 이루어져야 합니다. 계획 시 다음 문제를 고려해야 합니다.

  • 사용할 디스크 하드웨어의 유형. 예를 들면 RAID(독립 디스크의 중복 배열) 장치가 있습니다. 자세한 내용은 하드웨어 기반의 솔루션 정보를 참조하십시오.

  • 데이터를 디스크에 보관하는 방법. 자세한 내용은 파일 및 파일 그룹 사용을 참조하십시오.

  • 데이터에 액세스할 때 쿼리 성능을 향상시키기 위해 사용할 인덱스 디자인. 자세한 내용은 인덱스 디자인을 참조하십시오.

  • 데이터베이스가 잘 수행될 수 있도록 모든 구성 매개 변수를 적절하게 설정하는 방법. 자세한 내용은 서버 성능 최적화를 참조하십시오.