기타 모든 데이터 소스에 대한 통계 수집

DVSYS.COLLECT_STATISTICS 프로시저를 사용하여 객체 저장소에 정의된 객체를 제외한 모든 가상화 객체에 대한 통계를 수집할 수 있습니다.

다음 예는 DVSYS.COLLECT_STATISTICS 프로시저의 remote-catalog 콜렉션 유형으로 통계를 수집하는 방법을 보여줍니다.
call DVSYS.COLLECT_STATISTICS('schema',  'table_name', 'list_of_columns_commonly_used_in_predicates', 1, null, ?);

이 호출은 list_of_columns_commonly_used_in_predicates 인수에 포함된 열에 대한 테이블 레벨 통계 및 열 레벨 통계를 수집합니다. 테이블의 열 수가 적은 경우에는 열 목록 대신 널 값을 지정하여 모든 열에 대한 통계를 수집할 수 있습니다. 열 통계를 수집하지 않으려는 경우에는 비어 있는 문자열('')을 대신 지정하십시오.

컬렉션 remote-catalog 유형은 모든 데이터 소스에서 지원되지 않으며, 컬렉션 유형을 지원하는 일부 데이터 remote-catalog 소스에서도 컬렉션 유형에서 사용하는 모든 주요 통계가 Data Virtualization 지원되지 않을 수 있습니다. 어느 경우든 통계 콜렉션의 remote-query 유형을 사용해야 할 수 있습니다. 다음 예는 이전 예와 유사하지만 remote-query 콜렉션 유형을 대신 사용합니다.

call DVSYS.COLLECT_STATISTICS('schema', 'table_name', 'list_of_columns_commonly_used_in_predicates', 2, null, ?);
이 유형의 통계 콜렉션은 리소스 집약적이며 완료하는 데 시간이 오래 걸릴 수 있습니다. 가상화된 테이블에 행이 많거나 많은 열에 대해 통계가 수집되는 경우에는 시스템 사용량이 적을 때 통계를 수집하는 것을 고려하십시오. 테이블에 1000개 이상의 행이 있는 경우, 샘플링(TABLESAMPLE 옵션 지정)을 사용하여 통계 수집에 사용되는 리소스를 줄이고 성능을 향상시킬 수 있습니다.다음 예제는 25%의 데이터 샘플링 속도를 사용합니다:
call DVSYS.COLLECT_STATISTICS('schema', 'table_name', 'list_of_columns_commonly_used_in_predicates', 2, 'TABLESAMPLE=25', ?);
동시에 많은 통계 수집 작업을 예약하지 마십시오.

자세한 내용은 SQL Server 2008 데이터베이스 관리 시스템 설명서( Data Virtualization )의 COLLECT_STATISTICS 저장 프로시저를 참조하십시오.