統計の更新

SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 のテーブルまたはインデックス付きビューについての、クエリの最適化に関する統計を更新します。 既定では、統計はクエリ プランを改善するためにクエリ オプティマイザーによって必要に応じて更新されますが、UPDATE STATISTICS またはストアド プロシージャ sp_updatestats を使用して既定の更新より頻繁に統計を更新することでクエリのパフォーマンスを向上させることができる場合もあります。

統計を更新すると、クエリが最新の統計を使用してコンパイルされるようになります。 ただし、統計の更新によりクエリが再コンパイルされます。 パフォーマンスの向上を目的とする場合、クエリ プランの改善とクエリの再コンパイルに要する時間の間にはトレードオフの関係があるため、あまり頻繁に統計を更新しないようにすることをお勧めします。 実際のトレードオフはアプリケーションによって異なります。 UPDATE STATISTICS では、統計情報を構築する際、行のサンプルを並べ替える目的で tempdb が使用されます。

このトピックの内容

  • 作業を開始する準備:

    セキュリティ

  • 統計オブジェクトを更新するために使用するもの:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

セキュリティ

権限

UPDATE STATISTICS を使用するか、または SQL Server Management Studio で変更する場合は、テーブルまたはビューに対する ALTER 権限が必要です sp_updatestats を使用する場合は、sysadmin 固定サーバー ロールのメンバーシップまたはデータベース (dbo) の所有権が必要です。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

統計オブジェクトを更新するには

  1. オブジェクト エクスプローラーで、統計を更新するデータベースをプラス記号をクリックして展開します。

  2. プラス記号をクリックして [テーブル] フォルダーを展開します。

  3. プラス記号をクリックして、統計を更新するテーブルを展開します。

  4. プラス記号をクリックして [統計] フォルダーを展開します。

  5. 更新する統計オブジェクトを右クリックし、[プロパティ] を選択します。

  6. [統計のプロパティ –statistics_name] ダイアログ ボックスで [この列の統計を更新する] チェック ボックスをオンにし、[OK] をクリックします。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

特定の統計オブジェクトを更新するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE AdventureWorks2012;
    GO
    -- The following example updates the statistics for the AK_SalesOrderDetail_rowguid index of the SalesOrderDetail table. 
    UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid; 
    GO
    

テーブルのすべての統計を更新するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE AdventureWorks2012; 
    GO
    -- The following example updates the statistics for all indexes on the SalesOrderDetail table. 
    UPDATE STATISTICS Sales.SalesOrderDetail; 
    GO
    

詳細については、「UPDATE STATISTICS (Transact-SQL)」を参照してください。

データベースのすべての統計を更新するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE AdventureWorks2012; 
    GO
    -- The following example updates the statistics for all tables in the database. 
    EXEC sp_updatestats;
    

詳細については、「sp_updatestats (Transact-SQL)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]