통계 만들기

적용 대상: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed Instance

SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 테이블 또는 인덱싱된 뷰의 하나 이상의 열에 쿼리 최적화 통계를 만들 수 있습니다. 대부분의 쿼리에서 쿼리 최적화 프로그램은 고품질 쿼리 계획에 필요한 통계를 이미 생성합니다. 몇 가지 경우에 추가 통계를 만들어야 합니다.

제한 사항

CREATE STATISTICS 문을 사용하여 통계를 만들기 전에 AUTO_CREATE_STATISTICS 옵션이 데이터베이스 수준에서 설정되었는지 확인합니다. 이렇게 하면 쿼리 최적화 프로그램이 쿼리 조건자 열에 대한 단일 열 통계를 계속 정기적으로 만듭니다.

통계 개체당 최대 32개의 열을 나열할 수 있습니다.

필터링된 통계 조건자에서 정의된 테이블 열의 정의를 삭제, 이름 바꾸기 또는 변경할 수 없습니다.

사용 권한

사용자가 테이블 또는 인덱싱된 뷰 소유자이거나 sysadmin 고정 서버 역할, db_owner 고정 데이터베이스 역할 또는 db_ddladmin 고정 데이터베이스 역할 중 하나의 멤버여야 합니다.

SQL Server Management Studio 사용

  1. 개체 탐색기에서 더하기 기호를 선택하여 새 통계를 만들 데이터베이스를 확장합니다.

  2. 더하기 기호를 선택하여 테이블 폴더를 확장합니다.

  3. 더하기 기호를 선택하여 새 통계를 만들 테이블을 확장합니다.

  4. 통계 폴더를 마우스 오른쪽 단추로 클릭하고 새 통계를 선택합니다...

    테이블에 대한 새 통계 table_name 대화 상자의일반 페이지에 다음 속성이 표시됩니다.

    Property 설명
    테이블 이름 통계에서 설명하는 테이블의 이름을 표시합니다.
    통계 이름 통계가 저장되는 데이터베이스 개체의 이름을 표시합니다.
    통계 열 이 표에는 이 통계 집합에 설명된 열이 표시됩니다. 표의 모든 값은 읽기 전용입니다.
    입력 통계에서 설명하는 열의 이름을 표시합니다. 하나의 열일 수도 있고 단일 테이블의 열 조합일 수도 있습니다.
    데이터 형식 통계에서 설명하는 열의 데이터 형식을 나타냅니다.
    크기 각 열에 대한 데이터 형식의 크기를 표시합니다.
    ID ID 열이 선택되면 해당 열을 나타냅니다.
    NULL 허용 열에서 NULL 값을 허용하는지 여부를 나타냅니다.
    추가 테이블에서 통계 표에 열을 더 추가합니다.
    제거 통계 표에서 선택한 열을 제거합니다.
    위로 이동 선택한 열을 통계 표의 이전 위치로 이동합니다. 표의 위치는 통계의 유용성에 크게 영향을 줄 수 있습니다.
    아래로 이동 선택한 열을 통계 표의 이후 위치로 이동합니다.
    이러한 열에 대한 통계가 마지막으로 업데이트되었습니다. 통계의 나이를 나타냅니다. 통계는 현재일 때 더 유용합니다. 데이터를 크게 변경한 후 또는 비정형 데이터를 추가한 후 통계를 업데이트합니다. 데이터가 일관성 있게 배포된 테이블 통계는 자주 업데이트할 필요가 없습니다.
    이러한 열에 대한 통계 업데이트 대화 상자가 닫혀 있을 때 통계를 업데이트하려면 선택합니다.

    다음 속성은 테이블table_name 새 통계 대화 상자의 필터 페이지에 표시됩니다.

    Property 설명
    필터 식 필터링된 통계에 포함할 데이터 행을 정의합니다. Production.ProductSubcategoryID IN ( 1, 2, 3 )을 예로 들 수 있습니다.
  5. 테이블table_name 새 통계 대화 상자의 일반 페이지에서 추가를 선택합니다.

    다음 속성은 열 선택 대화 상자에 표시됩니다. 이 정보는 읽기 전용입니다.

    Property Description
    입력 통계에서 설명하는 열의 이름을 표시합니다. 하나의 열일 수도 있고 단일 테이블의 열 조합일 수도 있습니다.
    데이터 형식 통계에서 설명하는 열의 데이터 형식을 나타냅니다.
    크기 각 열에 대한 데이터 형식의 크기를 표시합니다.
    ID 확인 시 ID 열을 나타냅니다.
    NULL 허용 열에서 NULL 값을 허용하는지 여부를 나타냅니다.
  6. 열 선택 대화 상자에서 통계를 만들 각 열의 확인란 또는 확인란을 선택한 다음 확인을 선택합니다.

  7. 테이블table_name 새 통계 대화 상자에서 확인을 선택합니다.

Transact-SQL 사용

  1. 개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.

  2. 표준 도구 모음에서 새 쿼리를 선택합니다.

  3. 다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다.

    USE AdventureWorks2022;
    GO
    -- Create new statistic object called ContactMail1
    -- on the BusinessEntityID and EmailPromotion columns in the Person.Person table.
    
    CREATE STATISTICS ContactMail1
        ON Person.Person (BusinessEntityID, EmailPromotion);
    GO
    
  4. 위에서 만든 통계는 다음 쿼리의 결과를 향상시킬 수 있습니다.

    USE AdventureWorks2022;
    GO
    SELECT LastName, FirstName
    FROM Person.Person
    WHERE EmailPromotion = 2
    ORDER BY LastName, FirstName;
    GO
    

다음 단계