넓은 테이블에 대한 성능 고려 사항
넓은 테이블은 열 집합을 포함하는 테이블입니다. 넓은 테이블을 사용할 때는 다음과 같은 성능 고려 사항을 염두에 두어야 합니다.
넓은 테이블은 최대 30,000개의 열을 정의할 수 있습니다. 따라서 테이블에서 인덱스를 유지 관리하는 비용이 늘어납니다. 정의된 비클러스터형 인덱스는 데이터 하위 집합에 적용된 필터링된 인덱스여야 합니다. 자세한 내용은 필터링된 인덱스 디자인 지침을 참조하십시오.
응용 프로그램은 넓은 테이블에서 열을 동적으로 추가하고 제거할 수 있습니다. 열을 추가하거나 제거하면 컴파일된 쿼리 계획도 함께 무효화됩니다. 스키마의 변동 정도가 최소화되도록 예상 작업에 맞게 응용 프로그램을 디자인하는 것이 좋습니다.
넓은 테이블에서 데이터를 추가 및 제거하면 성능에 영향을 줄 수 있습니다. 테이블 데이터의 변동 정도가 최소화되도록 예상 작업에 맞게 응용 프로그램을 디자인해야 합니다.
넓은 테이블의 인덱스 수는 비즈니스 논리에 필요한 인덱스 수로 제한하는 것이 좋습니다. 인덱스 수가 늘어나면 DML 컴파일 시간과 메모리 요구 사항도 함께 늘어납니다.
넓은 테이블에서 클러스터링 키의 여러 행을 업데이트하는 DML 문의 실행은 가급적 제한해야 합니다. 이러한 문은 컴파일 및 실행에 많은 메모리 리소스가 필요할 수 있습니다.
넓은 테이블에서는 파티션 전환 작업의 속도가 느리고 처리하는 데 많은 양의 메모리가 필요할 수 있습니다. 성능 및 메모리 요구 사항은 원본 및 대상 파티션에 있는 전체 열 개수와 비례합니다.
넓은 테이블에서 특정 열을 업데이트하는 업데이트 커서는 FOR UPDATE 절에서 열을 명시적으로 나열해야 합니다. 이렇게 하면 커서를 사용할 때 성능을 최적화하는 데 도움이 됩니다.