sp_updatestats (Transact-SQL)

現在のデータベース内にあるすべてのユーザー定義テーブルと内部テーブルに対して UPDATE STATISTICS を実行します。

UPDATE STATISTICS の詳細については、「UPDATE STATISTICS (Transact-SQL)」を参照してください。統計の詳細については、「クエリのパフォーマンスを向上させるための統計の使用」を参照してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_updatestats [ [ @resample = ] 'resample']

リターン コードの値

0 (成功) または 1 (失敗)

引数

  • [ @resample =] 'resample'
    sp_updatestatsUPDATE STATISTICS ステートメントの RESAMPLE オプションを使用します。'resample' が指定されていない場合、sp_updatestats は既定のサンプリングを使用して統計を更新します。resample のデータ型は varchar(8) で、既定値は NO です。

説明

sp_updatestats は、ALL キーワードを指定することで、データベース内にあるすべてのユーザー定義テーブルと内部テーブルに対して UPDATE STATISTICS を実行し、その進行状況を示すメッセージを表示します。更新が完了すると、すべてのテーブルの統計が更新されたことをレポートします。

sp_updatestats は、無効化された非クラスタ化インデックスの統計を更新しますが、無効化されたクラスタ化インデックスの統計は更新しません。

sp_updatestats は、sys.sysindexes カタログ ビューの rowmodctr 情報に基づいて、更新の必要な統計のみを更新します。これによって、変更されていない行の統計を不必要に更新することがなくなります。

互換性レベルが 90 未満のデータベースについては、sp_updatestats を実行した場合、特定の統計に対する最新の NORECOMPUTE 設定が維持されません。互換性レベルが 90 以上のデータベースについては、sp_updatestats によって、特定の統計に対する最新の NORECOMPUTE オプションが維持されます。統計の更新の無効化および再有効化の詳細については、「クエリのパフォーマンスを向上させるための統計の使用」を参照してください。

権限

sysadmin 固定サーバー ロールのメンバシップまたはデータベース (dbo) の所有権が必要です。

次の例では、AdventureWorks データベースのテーブルの統計を更新します。

USE AdventureWorks;
GO
EXEC sp_updatestats 

変更履歴

変更内容

より正確な内容にするためにドキュメント全体を修正しました。

クエリのパフォーマンスを向上させるための統計の使用」の統計に関する新しい記述への参照を追加しました。