다음을 통해 공유


넓은 테이블에 대한 성능 고려 사항

넓은 테이블은 열 집합을 포함하는 테이블입니다. 넓은 테이블을 사용할 때는 다음과 같은 성능 고려 사항을 염두에 두어야 합니다.

  • 넓은 테이블은 최대 30,000개의 열을 정의할 수 있습니다. 따라서 테이블에서 인덱스를 유지 관리하는 비용이 늘어납니다. 정의된 비클러스터형 인덱스는 데이터 하위 집합에 적용된 필터링된 인덱스여야 합니다. 자세한 내용은 필터링된 인덱스 디자인 지침을 참조하십시오.

  • 응용 프로그램은 넓은 테이블에서 열을 동적으로 추가하고 제거할 수 있습니다. 열을 추가하거나 제거하면 컴파일된 쿼리 계획도 함께 무효화됩니다. 스키마의 변동 정도가 최소화되도록 예상 작업에 맞게 응용 프로그램을 디자인하는 것이 좋습니다.

  • 넓은 테이블에서 데이터를 추가 및 제거하면 성능에 영향을 줄 수 있습니다. 테이블 데이터의 변동 정도가 최소화되도록 예상 작업에 맞게 응용 프로그램을 디자인해야 합니다.

  • 넓은 테이블의 인덱스 수는 비즈니스 논리에 필요한 인덱스 수로 제한하는 것이 좋습니다. 인덱스 수가 늘어나면 DML 컴파일 시간과 메모리 요구 사항도 함께 늘어납니다.

  • 넓은 테이블에서 클러스터링 키의 여러 행을 업데이트하는 DML 문의 실행은 가급적 제한해야 합니다. 이러한 문은 컴파일 및 실행에 많은 메모리 리소스가 필요할 수 있습니다.

  • 넓은 테이블에서는 파티션 전환 작업의 속도가 느리고 처리하는 데 많은 양의 메모리가 필요할 수 있습니다. 성능 및 메모리 요구 사항은 원본 및 대상 파티션에 있는 전체 열 개수와 비례합니다.

  • 넓은 테이블에서 특정 열을 업데이트하는 업데이트 커서는 FOR UPDATE 절에서 열을 명시적으로 나열해야 합니다. 이렇게 하면 커서를 사용할 때 성능을 최적화하는 데 도움이 됩니다.