sp_createstats (Transact-SQL)
現在のデータベース内のすべてのユーザー テーブルおよび内部テーブルの中で条件を満たすすべての列に対して、統計を 1 列ずつ作成します。新しい統計の名前は、統計が作成された列の名前と同じです。
構文
sp_createstats [ [ @indexonly = ] 'indexonly' ]
[ , [ @fullscan = ] 'fullscan' ]
[ , [ @norecompute = ] 'norecompute' ]
引数
[ @indexonly= ] 'indexonly'
インデックスに関係している列だけを統計の対象として考慮することを指定します。indexonly は char(9) です。既定値は NO です。
[ @fullscan= ] 'fullscan'
CREATE STATISTICS に FULLSCAN オプションを使用することを指定します。fullscan を省略すると、SQL Server 2005 データベース エンジン は既定のサンプル スキャンを実行します。fullscan は char(9) です。既定値は NO です。
[ @norecompute= ] 'norecompute'
新しく作成された統計値の自動再計算を無効にするように指定します。norecompute は char(12) です。既定値は NO です。
結果セット
なし
解説
統計が既に作成されている列は除外されます。たとえば、インデックスの最初の列や、統計が明示的に作成されている列です。前述の制限を満たす各列に対して、CREATE STATISTICS ステートメントが実行されます。fullscan を指定すると、FULLSCAN が実行されます。
無効化されたインデックスの最初の列に関する統計は作成されません。indexonly を指定した場合、無効化された非クラスタ化インデックスの列に関する統計は、その列が別の有効化されたインデックスでも使用されていない限り、作成されません。sp_createstats は、無効化されたクラスタ化インデックスのあるテーブルを無視します。
権限
db_owner 固定データベース ロールのメンバシップである必要があります。
戻り値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
例
次の例では、現在のデータベース内のすべてのユーザー テーブルの中で、条件を満たすすべての列の統計を作成します。
EXEC sp_createstats;
次の例では、インデックスに関係している列だけの統計を作成します。
EXEC sp_createstats 'indexonly';
参照
関連項目
データベース エンジンのストアド プロシージャ (Transact-SQL)
CREATE STATISTICS (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
DROP STATISTICS (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)