SQL Server/統計情報
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-[[統計:https://docs.microsoft.com/ja-jp/sql/relational-d...
-[[Does Updating Statistics Cause a Recompile if No Data ...
-[[sys.dm_exec_query_stats (Transact-SQL):https://docs.mi...
-[[sp_autostats (TRANSACT-SQL):https://docs.microsoft.com...
-[[【統計情報】_WA_SYS_XXXについて:https://www.atmarkit.c...
-[[統計情報の自動更新に関する考察:https://blog.engineer-m...
-[[統計情報のサンプリングの実行プラン:https://blog.engine...
-[[統計情報の自動更新・手動更新の使い分け:https://techinf...
-[[SQL Server 統計情報の自動更新:http://tech.kou.asia/?p=...
-[[SQL Server 2008(2012)の統計自動更新について:トレース...
*統計情報がらみのトラブル [#y77773d1]
-[[トラブルシューティングから学ぶSQL Server統計情報の更新...
--[[SQL Database で VIEW SERVER STATE が必要なログインを...
-[[どうする? SQL Server のクエリ パフォーマンスが低下し...
-[[「あるタイミングから」処理が遅くなり、再起動しても再現...
**統計情報を更新しても改善されない場合は、一度再起動して...
-[[SQL Serverサービス再起動に伴う処理について:https://soc...
-SQL Serverが狂った統計情報を使い続けている可能性あり
-SQL Serverを再起動することで、更新された統計情報が使用さ...
**再起動しなくても、キャッシュをクリアすれば良い [#kba839...
***[[DBCC FREEPROCCACHE (Transact-SQL):https://docs.micro...
DBCC FREEPROCCACHE
***[[DBCC FREESYSTEMCACHE (Transact-SQL):https://docs.mic...
-DBCC FREESYSTEMCACHE を実行すると、SQL Server のインスタ...
-プラン キャッシュが消去されると、後続のすべての実行プラ...
-プラン キャッシュ内のキャッシュストアがクリアされるたび...
-このメッセージは、5 分以内にキャッシュがフラッシュされる...
DBCC FREESYSTEMCACHE('ALL')
*統計情報の設定 [#ndf0a833]
-[[SQL Server の統計情報作成について書いてみた、ちょっと...
**小規模向け [#t2c8062f]
-統計情報の自動更新 :True
-統計情報の非同期更新:True
**大規模向け [#hdd76fef]
-統計情報の自動更新 :False
-統計情報を手動で作成
-統計情報を手動で更新
*統計情報の自動更新 [#z5e39e94]
-[[統計の更新:https://docs.microsoft.com/ja-jp/sql/relati...
-[[SQL Server 統計情報の自動更新:http://tech.kou.asia/?p=...
-[[SQL Server 2008(2012)の統計自動更新について:トレース...
-[[統計情報のサンプリングについて:https://blog.engineer-m...
**自動更新の条件 [#t2247d57]
-テーブル行数が0から非0に推移した
-前回統計情報が更新された際のテーブル行数が500以下で、統...
-前回統計情報が更新された際のテーブル行数が501以上で、統...
-一時テーブルの場合は、上述の基準に加え、テーブル行数が6...
*統計情報の非同期更新 [#e546fc24]
-[[SQL Server 統計の非同期的自動更新:http://d.hatena.ne.j...
-非同期自動更新のメリット
--オンライン系のシステム (OLTP) と相性がいい
--統計を同期的に更新しないため、タイムアウトが発生する確...
-非同期自動更新のデメリット
--データウェアハウスなど大規模データをバッチで回すような...
--シングルユーザモードの利用が出来なくなる
*統計情報自動更新OFFでのシステム運用 [#s74c9a6d]
-統計情報の自動更新がONの状態で、オンライン中に統計情報の...
-しかし、統計情報の自動更新をOFFにした場合、結局、統計情...
-従って、統計情報更新のOFF運用は以下のようになると考える。
--サーバ・メンテナンス時間帯に統計情報の更新をONにして統...
--STATS_DATE関数で、統計の最終更新日を確認できる。
--サーバ・メンテナンス時間帯に問題(乖離)を発見して手動...
--[[参考:【SQL Server】統計情報のヒストグラムと実行プラ...
--注意:OFFだと、新たなインデックス追加時などにも統計情報...
--Missing Column Index イベントをトレースして統計情報のな...
*統計情報に関するSQL [#nef7ad0f]
-[[STATS_DATE (Transact-SQL):https://docs.microsoft.com/j...
-[[sys.dm_db_stats_properties (Transact-SQL):https://docs...
**統計情報の確認 [#x5e6797a]
DBCC SHOW_STATISTICS([テーブル名],[統計情報名])
-このコマンドを実行すると以下が出力される
--ヘッダー情報
---統計情報名
---統計情報の最終更新日
---テーブルの行数
---統計情報作成時に使用されたサンプル行数
--密度情報
--ヒストグラム
---RANGE_HI_KEY ... ステップの上限キー値
---RANGE_ROWS ... ステップ範囲内の行数。RANGE_HI_KEYは含...
---EQ_ROWS ... RANGE_HI_KEYと全く同じ値の行数
---DISTINCT_RANGE_ROWS ... ステップ範囲内の一意なキー値の...
---AVG_RANGE_ROWS ... ステップ範囲内の一意な値ごとの平均...
**最終更新日時・更新回数の確認 [#g6e9c80f]
SELECT
OBJECT_NAME(dsp.object_id)
, dsp.object_id
, ss.name
, ss.auto_created
, ss.user_created
, ss.no_recompute
, dsp.last_updated
, dsp.rows
, dsp.rows_sampled
, dsp.steps
, dsp.unfiltered_rows
, dsp.modification_counter
FROM
sys.stats AS ss
CROSS APPLY
sys.dm_db_stats_properties(ss.object_id, ss.stats_id...
WHERE
OBJECT_SCHEMA_NAME(dsp.object_id, DB_ID()) <> 'sys'
ORDER BY
dsp.last_updated desc
**統計情報更新 [#kfa63047]
EXEC sp_updatestats;
終了行:
-[[統計:https://docs.microsoft.com/ja-jp/sql/relational-d...
-[[Does Updating Statistics Cause a Recompile if No Data ...
-[[sys.dm_exec_query_stats (Transact-SQL):https://docs.mi...
-[[sp_autostats (TRANSACT-SQL):https://docs.microsoft.com...
-[[【統計情報】_WA_SYS_XXXについて:https://www.atmarkit.c...
-[[統計情報の自動更新に関する考察:https://blog.engineer-m...
-[[統計情報のサンプリングの実行プラン:https://blog.engine...
-[[統計情報の自動更新・手動更新の使い分け:https://techinf...
-[[SQL Server 統計情報の自動更新:http://tech.kou.asia/?p=...
-[[SQL Server 2008(2012)の統計自動更新について:トレース...
*統計情報がらみのトラブル [#y77773d1]
-[[トラブルシューティングから学ぶSQL Server統計情報の更新...
--[[SQL Database で VIEW SERVER STATE が必要なログインを...
-[[どうする? SQL Server のクエリ パフォーマンスが低下し...
-[[「あるタイミングから」処理が遅くなり、再起動しても再現...
**統計情報を更新しても改善されない場合は、一度再起動して...
-[[SQL Serverサービス再起動に伴う処理について:https://soc...
-SQL Serverが狂った統計情報を使い続けている可能性あり
-SQL Serverを再起動することで、更新された統計情報が使用さ...
**再起動しなくても、キャッシュをクリアすれば良い [#kba839...
***[[DBCC FREEPROCCACHE (Transact-SQL):https://docs.micro...
DBCC FREEPROCCACHE
***[[DBCC FREESYSTEMCACHE (Transact-SQL):https://docs.mic...
-DBCC FREESYSTEMCACHE を実行すると、SQL Server のインスタ...
-プラン キャッシュが消去されると、後続のすべての実行プラ...
-プラン キャッシュ内のキャッシュストアがクリアされるたび...
-このメッセージは、5 分以内にキャッシュがフラッシュされる...
DBCC FREESYSTEMCACHE('ALL')
*統計情報の設定 [#ndf0a833]
-[[SQL Server の統計情報作成について書いてみた、ちょっと...
**小規模向け [#t2c8062f]
-統計情報の自動更新 :True
-統計情報の非同期更新:True
**大規模向け [#hdd76fef]
-統計情報の自動更新 :False
-統計情報を手動で作成
-統計情報を手動で更新
*統計情報の自動更新 [#z5e39e94]
-[[統計の更新:https://docs.microsoft.com/ja-jp/sql/relati...
-[[SQL Server 統計情報の自動更新:http://tech.kou.asia/?p=...
-[[SQL Server 2008(2012)の統計自動更新について:トレース...
-[[統計情報のサンプリングについて:https://blog.engineer-m...
**自動更新の条件 [#t2247d57]
-テーブル行数が0から非0に推移した
-前回統計情報が更新された際のテーブル行数が500以下で、統...
-前回統計情報が更新された際のテーブル行数が501以上で、統...
-一時テーブルの場合は、上述の基準に加え、テーブル行数が6...
*統計情報の非同期更新 [#e546fc24]
-[[SQL Server 統計の非同期的自動更新:http://d.hatena.ne.j...
-非同期自動更新のメリット
--オンライン系のシステム (OLTP) と相性がいい
--統計を同期的に更新しないため、タイムアウトが発生する確...
-非同期自動更新のデメリット
--データウェアハウスなど大規模データをバッチで回すような...
--シングルユーザモードの利用が出来なくなる
*統計情報自動更新OFFでのシステム運用 [#s74c9a6d]
-統計情報の自動更新がONの状態で、オンライン中に統計情報の...
-しかし、統計情報の自動更新をOFFにした場合、結局、統計情...
-従って、統計情報更新のOFF運用は以下のようになると考える。
--サーバ・メンテナンス時間帯に統計情報の更新をONにして統...
--STATS_DATE関数で、統計の最終更新日を確認できる。
--サーバ・メンテナンス時間帯に問題(乖離)を発見して手動...
--[[参考:【SQL Server】統計情報のヒストグラムと実行プラ...
--注意:OFFだと、新たなインデックス追加時などにも統計情報...
--Missing Column Index イベントをトレースして統計情報のな...
*統計情報に関するSQL [#nef7ad0f]
-[[STATS_DATE (Transact-SQL):https://docs.microsoft.com/j...
-[[sys.dm_db_stats_properties (Transact-SQL):https://docs...
**統計情報の確認 [#x5e6797a]
DBCC SHOW_STATISTICS([テーブル名],[統計情報名])
-このコマンドを実行すると以下が出力される
--ヘッダー情報
---統計情報名
---統計情報の最終更新日
---テーブルの行数
---統計情報作成時に使用されたサンプル行数
--密度情報
--ヒストグラム
---RANGE_HI_KEY ... ステップの上限キー値
---RANGE_ROWS ... ステップ範囲内の行数。RANGE_HI_KEYは含...
---EQ_ROWS ... RANGE_HI_KEYと全く同じ値の行数
---DISTINCT_RANGE_ROWS ... ステップ範囲内の一意なキー値の...
---AVG_RANGE_ROWS ... ステップ範囲内の一意な値ごとの平均...
**最終更新日時・更新回数の確認 [#g6e9c80f]
SELECT
OBJECT_NAME(dsp.object_id)
, dsp.object_id
, ss.name
, ss.auto_created
, ss.user_created
, ss.no_recompute
, dsp.last_updated
, dsp.rows
, dsp.rows_sampled
, dsp.steps
, dsp.unfiltered_rows
, dsp.modification_counter
FROM
sys.stats AS ss
CROSS APPLY
sys.dm_db_stats_properties(ss.object_id, ss.stats_id...
WHERE
OBJECT_SCHEMA_NAME(dsp.object_id, DB_ID()) <> 'sys'
ORDER BY
dsp.last_updated desc
**統計情報更新 [#kfa63047]
EXEC sp_updatestats;
ページ名: