SQL Server 2012 と SQL Server v.Next CTP1.1 の DMV と DMF の違いをチェックしてみる
過去に 2012 と 2016 の dmv、dmf の違いを抽出しました。同じように 2012 と v.Next の違いもチェックしてみましょう。
ryuchan.hatenablog.com
リンクサーバ名を VNEXTto2012 と定義します。下記のクエリを v.Next 側のインスタンスから実行します。
SELECT [SQLServerVNEXTのDMVとDMF] = sqlserverVNEXT.name, [SQLServer2012のDMVとDMF] = sqlserver2012.name, [種別] = sqlserverVNEXT.type, [備考] = sqlserverVNEXT.type_desc FROM master.sys.system_objects sqlserverVNEXT FULL OUTER JOIN( SELECT so.name, so.type, so.type_desc FROM VNEXTto2012.master.sys.system_objects so ) sqlserver2012 ON sqlserverVNEXT.name = sqlserver2012.name WHERE sqlserverVNEXT.name LIKE 'dm_%' ORDER BY sqlserverVNEXT.name
結果をざっと見てみると、見慣れない dmf がいました。赤枠の dm_db_stats_histogram です。object_id と stat_id を引数で渡せばいいようです。
下記のクエリを SQL Server Management Studio で実行してみましょう。
SELECT s.*, sh.* FROM sys.stats s CROSS APPLY sys.dm_db_stats_histogram(s.object_id,s.stats_id) sh
エラーになってしまいますね。しかし、単体で実行すると結果が出力されます。
SELECT * FROM sys.dm_db_stats_histogram(418100530,1)
どうしてなんでしょう? CTP だから仕方ないんでしょうか。このあたり、統計の詳細情報を一覧で出せると結構便利そうですね。もう少し色々試してみよう....
YOGABOOK 用に買ってみたんですが、中々いい感じでした。