CREATE STATISTICS(Transact-SQL)CREATE STATISTICS (Transact-SQL)

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

테이블, 인덱싱된 뷰 또는 외부 테이블의 하나 이상의 열에 쿼리 최적화 통계를 만듭니다.Creates query optimization statistics on one or more columns of a table, an indexed view, or an external table. 쿼리 최적화 프로그램은 대부분의 쿼리에 대해 고품질의 쿼리 계획에 필요한 통계를 기본적으로 생성합니다. 따라서 쿼리 성능을 향상시키기 위해 CREATE STATISTICS를 사용하여 추가 통계를 만들거나 쿼리 설계를 수정해야 하는 경우는 드뭅니다.For most queries, the query optimizer already generates the necessary statistics for a high-quality query plan; in a few cases, you need to create additional statistics with CREATE STATISTICS or modify the query design to improve query performance.

자세한 내용은 참고 통계합니다.To learn more, see Statistics.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

-- Syntax for SQL Server and Azure SQL Database  

-- Create statistics on an external table  
CREATE STATISTICS statistics_name   
ON { table_or_indexed_view_name } ( column [ ,...n ] )   
    [ WITH FULLSCAN ] ;  

-- Create statistics on a regular table or indexed view  
CREATE STATISTICS statistics_name   
ON { table_or_indexed_view_name } ( column [ ,...n ] )   
    [ WHERE <filter_predicate> ]  
    [ WITH   
        [ [ FULLSCAN   
            [ [ , ] PERSIST_SAMPLE_PERCENT = { ON | OFF } ]    
          | SAMPLE number { PERCENT | ROWS }   
            [ [ , ] PERSIST_SAMPLE_PERCENT = { ON | OFF } ]    
          | <update_stats_stream_option> [ ,...n ]    
        [ [ , ] NORECOMPUTE ]   
        [ [ , ] INCREMENTAL = { ON | OFF } ] 
        [ [ , ] MAXDOP = max_degree_of_parallelism ]
    ] ;  

<filter_predicate> ::=   
    <conjunct> [AND <conjunct>]  

<conjunct> ::=  
    <disjunct> | <comparison>  

<disjunct> ::=  
        column_name IN (constant ,…)  

<comparison> ::=  
        column_name <comparison_op> constant  

<comparison_op> ::=  
    IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !<  

<update_stats_stream_option> ::=  
    [ STATS_STREAM = stats_stream ]  
    [ ROWCOUNT = numeric_constant ]  
    [ PAGECOUNT = numeric_contant ] 
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  

CREATE STATISTICS statistics_name   
    ON [ database_name . [schema_name ] . | schema_name. ] table_name   
    ( column_name  [ ,...n ] )   
    [ WHERE <filter_predicate> ]  
    [ WITH {  
           FULLSCAN   
           | SAMPLE number PERCENT   
      }  
    ]  
[;]  

<filter_predicate> ::=   
    <conjunct> [AND <conjunct>]  

<conjunct> ::=  
    <disjunct> | <comparison>  

<disjunct> ::=  
        column_name IN (constant ,…)  

<comparison> ::=  
        column_name <comparison_op> constant  

<comparison_op> ::=  
    IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !<  

인수Arguments

statistics_namestatistics_name
만들 통계의 이름입니다.Is the name of the statistics to create.

table_or_indexed_view_nametable_or_indexed_view_name
테이블, 인덱싱된 뷰 또는 외부 테이블을 만들 통계의 이름이입니다.Is the name of the table, indexed view, or external table on which to create the statistics. 다른 데이터베이스에서 통계를 만들려면 정규화 된 테이블 이름을 지정 합니다.To create statistics on another database, specify a qualified table name.

열 [, … n]column [ ,…n]
하나 이상의 열을 통계에 포함 합니다.One or more columns to be included in the statistics. 우선 순위에 따라 왼쪽에서 오른쪽으로 열 이어야 합니다.The columns should be in priority order from left to right. 첫 번째 열만 히스토그램을 만드는 데 사용 됩니다.Only the first column is used for creating the histogram. 모든 열은 밀도 호출 하는 열 간 상관 관계 통계에 사용 됩니다.All columns are used for cross-column correlation statistics called densities.

다음 예외 사항을 제외하고 인덱스 키 열로 지정할 수 있는 모든 열을 지정할 수 있습니다.You can specify any column that can be specified as an index key column with the following exceptions:

  • Xml, 전체 텍스트 및 FILESTREAM 열을 지정할 수 없습니다.Xml, full-text, and FILESTREAM columns cannot be specified.

  • ARITHABORT 및 QUOTED_IDENTIFIER 데이터베이스 설정이 ON으로 설정된 경우에만 계산 열을 지정할 수 있습니다.Computed columns can be specified only if the ARITHABORT and QUOTED_IDENTIFIER database settings are ON.

  • CLR 사용자 정의 형식 열은 이진 순서 정렬이 지원될 경우에만 지정할 수 있습니다.CLR user-defined type columns can be specified if the type supports binary ordering. 사용자 정의 형식 열의 메서드 호출로 정의된 계산 열은 메서드가 결정적 메서드로 표시된 경우에 지정할 수 있습니다.Computed columns defined as method invocations of a user-defined type column can be specified if the methods are marked deterministic.

    여기서 <filter_predicate > 통계 개체를 만들 때 포함할 행 하위 집합을 선택 하는 식을 지정 합니다.WHERE <filter_predicate> Specifies an expression for selecting a subset of rows to include when creating the statistics object. 필터 조건자를 사용하여 만든 통계를 필터링된 통계라고 합니다.Statistics that are created with a filter predicate are called filtered statistics. 필터 조건자는 간단한 비교 논리를 사용 하며 계산된 열, UDT 열, 공간 데이터 형식 열을 참조할 수 없습니다 또는 hierarchyID 데이터 형식 열입니다.The filter predicate uses simple comparison logic and cannot reference a computed column, a UDT column, a spatial data type column, or a hierarchyID data type column. 비교 연산자에는 NULL 리터럴을 사용한 비교를 사용할 수 없습니다.Comparisons using NULL literals are not allowed with the comparison operators. 대신 IS NULL 및 IS NOT NULL 연산자를 사용합니다.Use the IS NULL and IS NOT NULL operators instead.

    다음은 Production.BillOfMaterials 테이블에 대한 필터 조건자의 예입니다.Here are some examples of filter predicates for the Production.BillOfMaterials table:

    • WHERE StartDate > '20000101' AND EndDate <= '20000630'

    • WHERE ComponentID IN (533, 324, 753)

    • WHERE StartDate IN ('20000404', '20000905') AND EndDate IS NOT NULL

    필터 조건자에 대 한 자세한 내용은 참조 Create Filtered Indexes합니다.For more information about filter predicates, see Create Filtered Indexes.

    FULLSCANFULLSCAN
    모든 행을 검색 하 여 통계를 계산 합니다.Compute statistics by scanning all rows. FULLSCAN과 SAMPLE 100 PERCENT의 결과는 같습니다.FULLSCAN and SAMPLE 100 PERCENT have the same results. FULLSCAN은 SAMPLE 옵션과 함께 사용할 수 없습니다.FULLSCAN cannot be used with the SAMPLE option.

    생략 하면 SQL Server 통계를 만들 샘플링을 사용 하 고 고품질의 쿼리 계획을 만드는 데 필요한 샘플 크기를 결정When omitted, SQL Server uses sampling to create the statistics, and determines the sample size that is required to create a high quality query plan

    샘플 번호 {%| 행을 (를)SAMPLE number { PERCENT | ROWS }
    쿼리 최적화 프로그램에서 통계를 만들 때 사용할 테이블이나 인덱싱된 뷰에 있는 행의 비율이나 개수를 대략적으로 지정합니다.Specifies the approximate percentage or number of rows in the table or indexed view for the query optimizer to use when it creates statistics. Percent의 경우 번호 에서 100 사이 행에 대 한 일 수 있습니다 번호 총 행 수를 0에서 일 수 있습니다.For PERCENT, number can be from 0 through 100 and for ROWS, number can be from 0 to the total number of rows. 쿼리 최적화 프로그램에서 샘플링하는 실제 행의 비율이나 개수는 지정된 비율이나 개수와 일치하지 않을 수 있습니다.The actual percentage or number of rows the query optimizer samples might not match the percentage or number specified. 예를 들어, 쿼리 최적화 프로그램에서는 데이터 페이지의 모든 행을 검색합니다.For example, the query optimizer scans all rows on a data page.

    SAMPLE은 기본 샘플링을 기반으로 하는 쿼리 계획이 만족스럽지 못한 특별한 경우에 유용합니다.SAMPLE is useful for special cases in which the query plan, based on default sampling, is not optimal. 대부분의 경우 쿼리 최적화 프로그램은 기본적으로 고품질의 쿼리 계획을 만들기 위해 필요에 따라 샘플링을 사용하고 통계적으로 중요한 샘플 크기를 결정하기 때문에 SAMPLE을 지정할 필요가 없습니다.In most situations, it is not necessary to specify SAMPLE because the query optimizer already uses sampling and determines the statistically significant sample size by default, as required to create high-quality query plans.

    SAMPLE은 FULLSCAN 옵션과 함께 사용할 수 없습니다.SAMPLE cannot be used with the FULLSCAN option. SAMPLE과 FULLSCAN을 둘 다 지정하지 않으면 기본적으로 쿼리 최적화 프로그램에서 샘플링된 데이터를 사용하고 샘플 크기를 계산합니다.When neither SAMPLE nor FULLSCAN is specified, the query optimizer uses sampled data and computes the sample size by default.

    0 PERCENT 또는 0 ROWS로 지정하지 않는 것이 좋습니다.We recommend against specifying 0 PERCENT or 0 ROWS. 0 PERCENT 또는 0 ROWS로 지정하면 통계 데이터가 포함되지 않은 빈 통계 개체가 만들어집니다.When 0 PERCENT or ROWS is specified, the statistics object is created but does not contain statistics data.

    PERSIST_SAMPLE_PERCENT = {ON | OFF}PERSIST_SAMPLE_PERCENT = { ON | OFF }
    ON, 통계 샘플링 비율을 명시적으로 지정 하지 않으면 후속 업데이트에 대 한 만들기 샘플링 백분율을 그대로 유지 됩니다.When ON, the statistics will retain the creation sampling percentage for subsequent updates that do not explicitly specify a sampling percentage. OFF, 통계 샘플링 비율 샘플링 비율을 명시적으로 지정 하지 않은 이후의 업데이트에서 기본 샘플링을 다시 설정 될 됩니다.When OFF, statistics sampling percentage will get reset to default sampling in subsequent updates that do not explicitly specify a sampling percentage. 기본값은 OFF합니다.The default is OFF.

    에 적용 됩니다: SQL Server 2016SQL Server 2016 (부터는 SQL Server 2016SQL Server 2016 SP1 CU4)를 통해 SQL Server 2017SQL Server 2017 (부터는 SQL Server 2017SQL Server 2017 CU1).Applies to: SQL Server 2016SQL Server 2016 (starting with SQL Server 2016SQL Server 2016 SP1 CU4) through SQL Server 2017SQL Server 2017 (starting with SQL Server 2017SQL Server 2017 CU1).

    STATS_STREAM = stats_streamSTATS_STREAM =stats_stream

    정보를 제공하기 위해서만 확인됩니다.Identified for informational purposes only. 지원되지 않습니다.Not supported. 향후 호환성은 보장되지 않습니다.Future compatibility is not guaranteed.

    NORECOMPUTENORECOMPUTE
    에 대 한 자동 통계 업데이트 옵션인 AUTO_STATISTICS_UPDATE를 비활성화 statistics_name합니다.Disable the automatic statistics update option, AUTO_STATISTICS_UPDATE, for statistics_name. 쿼리 최적화 프로그램에 대 한 모든 진행 중인 통계 업데이트를 완료 하이 옵션을 지정 하는 경우 statistics_name 이후의 업데이트를 비활성화 하 고 있습니다.If this option is specified, the query optimizer will complete any in-progress statistics updates for statistics_name and disable future updates.

    통계 업데이트를 다시 사용 하려면 사용 하 여 통계 제거 DROP STATISTICS 다음 NORECOMPUTE 옵션 없이 CREATE STATISTICS를 실행 합니다.To re-enable statistics updates, remove the statistics with DROP STATISTICS and then run CREATE STATISTICS without the NORECOMPUTE option.

경고

이 옵션을 사용하면 최적이 아닌 쿼리 계획이 생성될 수 있습니다.Using this option can produce suboptimal query plans. 이 옵션은 자격 있는 시스템 관리자가 꼭 필요한 경우에만 사용하는 것이 좋습니다.We recommend using this option sparingly, and then only by a qualified system administrator.

AUTO_STATISTICS_UPDATE 옵션에 대 한 자세한 내용은 참조 하세요. ALTER DATABASE SET 옵션 ( Transact SQL ) .For more information about the AUTO_STATISTICS_UPDATE option, see ALTER DATABASE SET Options (Transact-SQL). 통계 업데이트를 다시 활성화 및 비활성화 하는 방법에 대 한 자세한 내용은 참조 통계합니다.For more information about disabling and re-enabling statistics updates, see Statistics.

INCREMENTAL = {ON | OFF}INCREMENTAL = { ON | OFF }
ON, 파티션 통계 별로 통계가 작성 됩니다.When ON, the statistics created are per partition statistics. OFF, 통계는 모든 파티션에 대 한 결합 됩니다.When OFF, stats are combined for all partitions. 기본값은 OFF합니다.The default is OFF.

파티션별 통계가 지원되지 않을 경우 오류가 생성됩니다.If per partition statistics are not supported an error is generated. 다음 통계 유형에 대해서는 증분 통계가 지원되지 않습니다.Incremental stats are not supported for following statistics types:

  • 기본 테이블을 기준으로 파티션 정렬되지 않은 인덱스를 사용하여 작성된 통계입니다.Statistics created with indexes that are not partition-aligned with the base table.
  • Always On 읽기 가능한 보조 데이터베이스에 대해 작성된 통계입니다.Statistics created on Always On readable secondary databases.
  • 읽기 전용 데이터베이스에 대해 작성된 통계입니다.Statistics created on read-only databases.
  • 필터링된 인덱스에 대해 작성된 통계입니다.Statistics created on filtered indexes.
  • 뷰에 대해 작성된 통계입니다.Statistics created on views.
  • 내부 테이블에 대해 작성된 통계입니다.Statistics created on internal tables.
  • 공간 인덱스 또는 XML 인덱스를 사용하여 작성된 통계입니다.Statistics created with spatial indexes or XML indexes.

적용 대상: SQL Server 2014SQL Server 2014 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017.

MAXDOP = max_degree_of_parallelismMAXDOP = max_degree_of_parallelism
적용 대상: SQL ServerSQL Server (부터는 SQL Server 2017SQL Server 2017 CU3).Applies to: SQL ServerSQL Server (Starting with SQL Server 2017SQL Server 2017 CU3).

재정의 x degree of 통계 작업의 기간에 대 한 구성 옵션입니다.Overrides the max degree of parallelism configuration option for the duration of the statistic operation. 자세한 내용은 max degree of parallelism 서버 구성 옵션 구성을 참조하세요.For more information, see Configure the max degree of parallelism Server Configuration Option. MAXDOP를 사용하여 병렬 계획 실행에 사용되는 프로세서 수를 제한할 수 있습니다.Use MAXDOP to limit the number of processors used in a parallel plan execution. 최대값은 64개입니다.The maximum is 64 processors.

max_degree_of_parallelism 될 수 있습니다.max_degree_of_parallelism can be:

11
병렬 계획이 생성되지 않습니다.Suppresses parallel plan generation.

>1>1
지정된 된 수 이하로 현재 시스템 작업에 따라 병렬 통계 작업에 사용 되는 프로세서의 최대 수를 제한 합니다.Restricts the maximum number of processors used in a parallel statistic operation to the specified number or fewer based on the current system workload.

0(기본값)0 (default)
현재 시스템 작업에 따라 실제 프로세서 수 이하의 프로세서를 사용합니다.Uses the actual number of processors or fewer based on the current system workload.

<update_stats_stream_option > 정보를 제공하기 위해서만 확인됩니다.Identified for informational purposes only. 지원되지 않습니다.Not supported. 향후 호환성은 보장되지 않습니다.Future compatibility is not guaranteed.<update_stats_stream_option> 정보를 제공하기 위해서만 확인됩니다.Identified for informational purposes only. 지원되지 않습니다.Not supported. 향후 호환성은 보장되지 않습니다.Future compatibility is not guaranteed.

PermissionsPermissions

이러한 사용 권한 중 하나가 필요합니다.Requires one of these permissions:

  • ALTER TABLEALTER TABLE
  • 사용자는 소유자User is the table owner
  • 멤버 자격이 db_ddladmin 고정된 데이터베이스 역할Membership in the db_ddladmin fixed database role

일반적인 주의 사항General Remarks

SQL ServerSQL Server통계를 작성 하기 전에 샘플링된 한 행을 정렬 하려면 tempdb를 사용할 수 있습니다. can use tempdb to sort the sampled rows before building statistics.

외부 테이블에 대 한 통계Statistics for external tables

외부 테이블 통계를 만들 때 SQL ServerSQL Server 임시에 외부 테이블을 가져오는 SQL ServerSQL Server 테이블을 선택한 다음 통계를 작성 합니다.When creating external table statistics, SQL ServerSQL Server imports the external table into a temporary SQL ServerSQL Server table, and then creates the statistics. 샘플 통계에 대 한 샘플링된 한 행만 가져옵니다.For samples statistics, only the sampled rows are imported. 큰 외부 테이블을 설정한 경우 전체 검색 옵션 대신 기본 샘플링을 사용 하는 것이 빠르므로 됩니다.If you have a large external table, it will be much faster to use the default sampling instead of the full scan option.

필터링 된 조건 사용 하 여 통계Statistics with a filtered condition

필터링된 통계는 잘 정의된 데이터의 하위 집합에서 선택하는 쿼리에 대한 쿼리 성능을 높일 수 있습니다.Filtered statistics can improve query performance for queries that select from well-defined subsets of data. WHERE 절의 필터 조건자를 사용하여 통계에 포함되는 데이터의 하위 집합을 선택합니다.Filtered statistics use a filter predicate in the WHERE clause to select the subset of data that is included in the statistics.

CREATE STATISTICS를 사용하는 경우When to Use CREATE STATISTICS

CREATE STATISTICS를 사용 하는 경우에 대 한 자세한 내용은 참조 통계합니다.For more information about when to use CREATE STATISTICS, see Statistics.

필터링된 통계의 종속성 참조Referencing Dependencies for Filtered Statistics

sys.sql_expression_dependencies 카탈로그 뷰 종속성 참조로 필터링 된 통계 조건자의 각 열을 추적 합니다.The sys.sql_expression_dependencies catalog view tracks each column in the filtered statistics predicate as a referencing dependency. 필터링된 통계 조건자에서 정의된 테이블 열은 삭제, 이름 바꾸기 또는 정의 변경을 수행할 수 없으므로 필터링된 통계를 만들기 전에 테이블 열에서 수행하는 작업을 고려하세요.Consider the operations that you perform on table columns before creating filtered statistics because you cannot drop, rename, or alter the definition of a table column that is defined in a filtered statistics predicate.

제한 사항Limitations and Restrictions

  • 외부 테이블에서 통계를 업데이트할 수 없습니다.Updating statistics is not supported on external tables. 외부 테이블에 대 한 통계를 업데이트 하려면 삭제 하 고 통계를 다시 만듭니다.To update statistics on an external table, drop and re-create the statistics.
  • 개체당 최대 64 개 열을 나열할 수 있습니다.You can list up to 64 columns per statistics object.
  • MAXDOP 옵션 STATS_STREAM, 행 개수 및 PAGECOUNT 옵션와 호환 되지 않습니다.The MAXDOP option is not compatible with STATS_STREAM, ROWCOUNT and PAGECOUNT options.

Examples

예제는 AdventureWorks 데이터베이스를 사용합니다.Examples use the AdventureWorks database.

1.A. CREATE STATISTICS에 SAMPLE number PERCENT 사용Using CREATE STATISTICS with SAMPLE number PERCENT

다음 예에서는 AdventureWorks2012AdventureWorks2012 데이터베이스의 ContactMail1 테이블에서 BusinessEntityIDEmailPromotion 열에 대해 5% 무작위 샘플링을 사용하여 Contact 통계를 만듭니다.The following example creates the ContactMail1 statistics, using a random sample of 5 percent of the BusinessEntityID and EmailPromotion columns of the Contact table of the AdventureWorks2012AdventureWorks2012database.

CREATE STATISTICS ContactMail1  
    ON Person.Person (BusinessEntityID, EmailPromotion)  
    WITH SAMPLE 5 PERCENT;  

2.B. CREATE STATISTICS에 FULLSCAN 및 NORECOMPUTE 사용Using CREATE STATISTICS with FULLSCAN and NORECOMPUTE

다음 예에서는 ContactMail2 테이블의 BusinessEntityIDEmailPromotion 열에서 모든 행에 대한 Contact 통계를 만듭니다. 통계의 자동 다시 계산 기능은 사용하지 않습니다.The following example creates the ContactMail2 statistics for all rows in the BusinessEntityID and EmailPromotion columns of the Contact table and disables automatic recomputing of statistics.

CREATE STATISTICS NamePurchase  
    ON AdventureWorks2012.Person.Person (BusinessEntityID, EmailPromotion)  
    WITH FULLSCAN, NORECOMPUTE;  

3.C. CREATE STATISTICS를 사용하여 필터링된 통계 만들기Using CREATE STATISTICS to create filtered statistics

다음 예에서는 필터링된 통계 ContactPromotion1을 만듭니다.The following example creates the filtered statistics ContactPromotion1. 데이터베이스 엔진Database Engine은 데이터의 50%를 샘플링한 다음 EmailPromotion이 2인 행을 선택합니다.The 데이터베이스 엔진Database Engine samples 50 percent of the data and then selects the rows with EmailPromotion equal to 2.

CREATE STATISTICS ContactPromotion1  
    ON Person.Person (BusinessEntityID, LastName, EmailPromotion)  
WHERE EmailPromotion = 2  
WITH SAMPLE 50 PERCENT;  
GO  

4.D. 외부 테이블에서 통계를 작성 합니다.Create statistics on an external table

외부 테이블, 열 목록 외에 통계를 만들 때 판단 해야 하는 유일한 결정 행을 샘플링 하 여 또는 모든 행을 검사 하 여 통계를 만들 것인지 여부입니다.The only decision you need to make when you create statistics on an external table, besides providing the list of columns, is whether to create the statistics by sampling the rows or by scanning all of the rows.

이후 SQL ServerSQL Server 전체 검색 옵션 통계를 만들려면를 임시 테이블에 외부 테이블에서 훨씬 더 오래 걸립니다.Since SQL ServerSQL Server imports data from the external table into a temporary table to create statistics, the full scan option will take much longer. 큰 테이블에 대 한 기본 샘플링 방법으로 충분 합니다.For a large table, the default sampling method is usually sufficient.

--Create statistics on an external table and use default sampling.  
CREATE STATISTICS CustomerStats1 ON DimCustomer (CustomerKey, EmailAddress);  

--Create statistics on an external table and scan all the rows  
CREATE STATISTICS CustomerStats1 ON DimCustomer (CustomerKey, EmailAddress) WITH FULLSCAN;  

5.E. CREATE STATISTICS에 FULLSCAN 및 PERSIST_SAMPLE_PERCENT 사용Using CREATE STATISTICS with FULLSCAN and PERSIST_SAMPLE_PERCENT

다음 예제에서는 ContactMail2 의 모든 행에 대 한 통계는 BusinessEntityIDEmailPromotion 의 열은 Contact 테이블을 명시적으로 되어 있어야 하지 않는 한 모든 후속 업데이트는 샘플링을 지정할 100% 샘플링 비율을 설정 합니다. 백분율입니다.The following example creates the ContactMail2 statistics for all rows in the BusinessEntityID and EmailPromotion columns of the Contact table and sets a 100 percent sampling percentage for all subsequent updates that do not explicitely specify a sampling percentage.

CREATE STATISTICS NamePurchase  
    ON AdventureWorks2012.Person.Person (BusinessEntityID, EmailPromotion)  
    WITH FULLSCAN, PERSIST_SAMPLE_PERCENT = ON;  

AdventureWorksDW 데이터베이스를 사용 하는 예제입니다.Examples using AdventureWorksDW database.

6.F. 두 열에 통계를 작성 합니다.Create statistics on two columns

다음 예제에서는 CustomerStats1 기준으로 통계는 CustomerKeyEmailAddress 의 열은 DimCustomer 테이블입니다.The following example creates the CustomerStats1 statistics, based on the CustomerKey and EmailAddress columns of the DimCustomer table. 통계에 있는 행의 통계적으로 중요 한 샘플링을 기반으로 생성 된 Customer 테이블입니다.The statistics are created based on a statistically significant sampling of the rows in the Customer table.

CREATE STATISTICS CustomerStats1 ON DimCustomer (CustomerKey, EmailAddress);  

7.G. 전체 검색을 사용 하 여 통계를 만들어Create statistics by using a full scan

다음 예제에서는 CustomerStatsFullScan 에 있는 행의 모든 검색 기준으로 통계는 DimCustomer 테이블입니다.The following example creates the CustomerStatsFullScan statistics, based on scanning all of the rows in the DimCustomer table.

CREATE STATISTICS CustomerStatsFullScan 
ON DimCustomer (CustomerKey, EmailAddress) WITH FULLSCAN;  

8.H. 샘플 비율을 지정 하 여 통계를 만들어Create statistics by specifying the sample percentage

다음 예제에서는 CustomerStatsSampleScan 에 있는 행의 50% 검색 기준으로 통계는 DimCustomer 테이블입니다.The following example creates the CustomerStatsSampleScan statistics, based on scanning 50 percent of the rows in the DimCustomer table.

CREATE STATISTICS CustomerStatsSampleScan 
ON DimCustomer (CustomerKey, EmailAddress) WITH SAMPLE 50 PERCENT;  

관련 항목:See Also

통계 Statistics
UPDATE STATISTICS(Transact-SQL) UPDATE STATISTICS (Transact-SQL)
sp_updatestats(Transact-SQL) sp_updatestats (Transact-SQL)
DBCC SHOW_STATISTICS(Transact-SQL) DBCC SHOW_STATISTICS (Transact-SQL)
DROP STATISTICS(Transact-SQL) DROP STATISTICS (Transact-SQL)
sys.stats(Transact-SQL) sys.stats (Transact-SQL)
sys.stats_columns ( Transact SQL )sys.stats_columns (Transact-SQL)