sp_updatestats (Transact-SQL)
現在のデータベース内にあるすべてのユーザー定義テーブルと内部テーブルに対して UPDATE STATISTICS を実行します。
UPDATE STATISTICS の詳細については、「UPDATE STATISTICS (Transact-SQL)」を参照してください。 統計の詳細については、「統計」を参照してください。
構文
sp_updatestats [ [ @resample = ] 'resample']
リターン コードの値
0 (成功) または 1 (失敗)
引数
- [ @resample =] 'resample'
sp_updatestats は UPDATE STATISTICS ステートメントの RESAMPLE オプションを使用します。 'resample' が指定されていない場合、sp_updatestats は既定のサンプリングを使用して統計を更新します。 resample のデータ型は varchar(8) で、既定値は NO です。
説明
sp_updatestats は、ALL キーワードを指定することで、データベース内にあるすべてのユーザー定義テーブルと内部テーブルに対して UPDATE STATISTICS を実行します。 sp_updatestats は、その進行状況を示すメッセージを表示します。 更新が完了すると、すべてのテーブルの統計が更新されたことをレポートします。
sp_updatestats は、無効化された非クラスター化インデックスの統計を更新しますが、無効化されたクラスター化インデックスの統計は更新しません。
sp_updatestats は、sys.sysindexes カタログ ビューの rowmodctr 情報に基づいて、更新の必要な統計のみを更新します。これによって、変更されていない行の統計を不必要に更新することがなくなります。
sp_updatestats は、ストアド プロシージャやその他のコンパイル済みコードの再コンパイルをトリガーできます。 ただし、参照するテーブルやそのインデックスに対するクエリ プランが 1 つだけの場合は、sp_updatestats を実行しても再コンパイルされないことがあります。 このような場合は、統計が更新されても再コンパイルの必要はありません。
互換性レベルが 90 未満のデータベースについては、sp_updatestats を実行した場合、特定の統計に対する最新の NORECOMPUTE 設定が維持されません。 互換性レベルが 90 以上のデータベースについては、sp_updatestats によって、特定の統計に対する最新の NORECOMPUTE オプションが維持されます。 統計の更新の無効化および再有効化の詳細については、「統計」を参照してください。
権限
sysadmin 固定サーバー ロールのメンバーシップまたはデータベース (dbo) の所有権が必要です。
使用例
次の例では、 AdventureWorks2012 データベースのテーブルの統計を更新します。
USE AdventureWorks2012;
GO
EXEC sp_updatestats;
関連項目
参照
ALTER DATABASE の SET オプション (Transact-SQL)
CREATE STATISTICS (Transact-SQL)
DBCC SHOW_STATISTICS (Transact-SQL)
DROP STATISTICS (Transact-SQL)