SQL Server 統計情報のサンプリングを抽出するクエリ

SQL Server 統計情報のサンプリングを抽出するクエリ

SQL Serverでテーブル内の値の変化の頻度をまとめた統計情報のサンプリングを抽出するクエリを記述してます。

環境

  • OS windows10 pro
  • SQL server2017 Version 14.0.3223.3
  • SSMS 18.7.1

サンプリングを抽出

以下のクエリを実行することで統計情報のサンプリングを抽出することが可能です。

SELECT
    d.object_id 
    , OBJECT_NAME(d.object_id) 
    , s.name 
    , d.last_updated 
    , d.rows 
    , d.rows_sampled 
    , d.steps 
    , d.unfiltered_rows 
    , d.modification_counter 
	, ROUND( (d.rows_sampled * 100 / d.rows) ,2) as [SamplingRate(%)]
FROM 
    sys.stats AS s
    CROSS APPLY 
    sys.dm_db_stats_properties(s.object_id, s.stats_id) AS d
WHERE 
    OBJECT_SCHEMA_NAME(d.object_id, DB_ID()) <> 'sys'
Order by [SamplingRate(%)] DESC

実行結果