통계 만들기
적용 대상: SQL Server 2022(16.x) Azure SQL 데이터베이스 Azure 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 사용
개체 탐색기에서 더하기 기호를 선택하여 새 통계를 만들 데이터베이스를 확장합니다.
더하기 기호를 선택하여 테이블 폴더를 확장합니다.
더하기 기호를 선택하여 새 통계를 만들 테이블을 확장합니다.
통계 폴더를 마우스 오른쪽 단추로 선택하고 새 통계...를 선택합니다.
테이블에 대한 새 통계 table_name 대화 상자의 일반 페이지에 다음 속성이 표시됩니다.
속성 설명 테이블 이름 통계에서 설명하는 테이블의 이름을 표시합니다. 통계 이름 통계가 저장되는 데이터베이스 개체 이름을 표시합니다. 통계 열 이 약식 표에는 이 통계 집합에 설명된 열이 표시됩니다. 표의 모든 값은 읽기 전용입니다. 이름 통계에서 설명하는 열의 이름을 표시합니다. 하나의 열일 수도 있고 단일 테이블의 열 조합일 수도 있습니다. 데이터 형식 통계에서 설명하는 열의 데이터 형식을 나타냅니다. 크기 각 열에 대한 데이터 형식의 크기를 표시합니다. ID ID 열이 선택되면 해당 열을 나타냅니다. NULL 허용 열에서 NULL 값을 허용하는지 여부를 나타냅니다. 추가 테이블에서 통계 표에 열을 더 추가합니다. 제거 통계 약식 표에서 선택한 열을 제거합니다. 위로 이동 선택한 열을 통계 약식 표의 이전 위치로 이동합니다. 약식 표의 위치는 통계의 유용성에 크게 영향을 줄 수 있습니다. 아래로 이동 선택한 열을 통계 약식 표의 이후 위치로 이동합니다. 이러한 열에 대한 통계가 마지막으로 업데이트된 시기 통계가 얼마나 오래되었는지 나타냅니다. 통계는 최신일 때 더 유용합니다. 데이터를 크게 변경한 후 또는 비정형 데이터를 추가한 후 통계를 업데이트합니다. 데이터가 일관성 있게 배포된 테이블 통계는 자주 업데이트할 필요가 없습니다. 이러한 열에 대한 통계 업데이트 대화 상자가 닫혀 있을 때 통계를 업데이트하려면 선택합니다. 테이블에 대한 새 통계 table_name 대화 상자의 필터 페이지에 다음 속성이 표시됩니다.
속성 설명 필터 식 필터링된 통계에 포함할 데이터 행을 정의합니다. 예를 들어 Production.ProductSubcategoryID IN ( 1, 2, 3 )
테이블에 대한 새 통계 table_name 대화 상자의 일반 페이지에서 추가를 선택합니다.
다음 속성은 열 선택 대화 상자에 표시됩니다. 이 정보는 읽기 전용입니다.
속성 설명 이름 통계에서 설명하는 열의 이름을 표시합니다. 하나의 열일 수도 있고 단일 테이블의 열 조합일 수도 있습니다. 데이터 형식 통계에서 설명하는 열의 데이터 형식을 나타냅니다. 크기 각 열에 대한 데이터 형식의 크기를 표시합니다. ID 확인 시 ID 열을 나타냅니다. NULL 허용 열에서 NULL 값을 허용하는지 여부를 나타냅니다. 열 선택 대화 상자에서 통계를 만들려는 각 열의 확인란을 선택한 다음 확인을 선택합니다.
테이블에 대한 새 통계 table_name 대화 상자에서 확인을 선택합니다.
Transact-SQL 사용
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다.
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
위에서 만든 통계는 다음 쿼리의 결과를 향상시킬 수 있습니다.
USE AdventureWorks2022; GO SELECT LastName, FirstName FROM Person.Person WHERE EmailPromotion = 2 ORDER BY LastName, FirstName; GO