다음을 통해 공유


sp_createstats(Transact-SQL)

CREATE STATISTICS 문을 호출하여 통계 개체의 첫 번째 열이 아닌 열에 대한 단일 열 통계를 만듭니다. 단일 열 통계를 만들면 히스토그램의 수가 늘어나며 이에 따라 카디널리티 예상치, 쿼리 계획 및 쿼리 성능이 향상될 수 있습니다. 히스토그램은 통계 개체의 첫 번째 열에 있으며 다른 열에는 없습니다.

sp_createstats는 쿼리 실행 시간이 중요하며 쿼리 최적화 프로그램에서 단일 열 통계를 생성할 때까지 기다릴 수 없는 경우, 즉 벤치마킹 등과 같은 응용 프로그램에 유용합니다. 대부분의 경우에는 sp_createstats를 사용할 필요가 없습니다. AUTO_CREATE_STATISTICS 옵션을 설정하면 쿼리 최적화 프로그램에서 필요 시 단일 열 통계를 생성하여 쿼리 계획을 향상시킵니다.

통계에 대한 자세한 내용은 통계를 사용하여 쿼리 성능 향상을 참조하십시오. 단일 열 통계 생성에 대한 자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)의 AUTO_CREATE_STATISTICS 옵션을 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_createstats [ [ @indexonly = ] 'indexonly' ] 
        [ , [ @fullscan = ] 'fullscan' ] 
    [ , [ @norecompute = ] 'norecompute' ]

인수

  • [ @indexonly= ] 'indexonly'
    기존 인덱스에 있으며 인덱스 정의의 첫 번째 열이 아닌 열에 대해서만 통계를 만듭니다. indexonly는 char(9)입니다. 기본값은 NO입니다.

  • [ @fullscan= ] 'fullscan'
    CREATE STATISTICS 문을 FULLSCAN 옵션과 함께 사용합니다. fullscan은 char(9)입니다. 기본값은 NO입니다.

  • [ @norecompute= ] 'norecompute'
    CREATE STATISTICS 문을 NORECOMPUTE 옵션과 함께 사용합니다. norecompute는 char(12)입니다. 기본값은 NO입니다.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

새로운 각 통계 개체는 해당 통계가 만들어진 열과 동일한 이름을 갖습니다.

주의

sp_createstats는 기존 통계 개체의 첫 번째 열에 대해서는 통계를 만들거나 업데이트하지 않습니다. 여기에는 인덱스에 대해 만들어진 통계의 첫 번째 열, AUTO_CREATE_STATISTICS 옵션을 통해 생성된 단일 열을 포함하는 열, CREATE STATISTICS 문을 통해 만들어진 통계의 첫 번째 열이 포함됩니다. sp_createstats는 비활성화된 인덱스의 첫 번째 열이 활성화된 다른 인덱스에 사용되지 않는 한 해당 열에 대한 통계를 만들지 않습니다. sp_createstats는 비활성화된 클러스터형 인덱스를 포함하는 테이블에 대한 통계를 만들지 않습니다.

테이블에 열이 하나인 경우 sp_createstats는 스파스 열에 대한 통계를 만들지 않습니다. 열 집합 및 스파스 열에 대한 자세한 내용은 열 집합 사용스파스 열 사용을 참조하십시오.

사용 권한

db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

1. 적합한 모든 열에 대한 단일 열 통계 만들기

다음 예에서는 현재 데이터베이스에 있는 적합한 모든 열에 대한 단일 열 통계를 만듭니다.

EXEC sp_createstats;
GO

2. 적합한 모든 인덱스 열에 대한 단일 열 통계 만들기

다음 예에서는 인덱스에 있으며 인덱스의 첫 번째 열이 아닌, 적합한 모든 열에 대한 단일 열 통계를 만듭니다.

EXEC sp_createstats 'indexonly';
GO