都内で働くSEの技術的なひとりごと

都内でサラリーマンやってます。マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。よろしくお願いします♪

統計情報をデータベースから抜き出してみる

 左目の痛みは引いてきましたが、右目が痛くなってきました(泣)。前回の記事では、DBCC コマンドを使って統計情報を抜き出し、UPDATE STATISTICS を使い統計情報を更新してみました。ただ、これを繰り返すのは面倒ですよね。
ryuchan.hatenablog.com

今回は、データベースから一気に統計情報を取得するやり方を説明します。今回は SQL Server 2016 で行っていますが、他のバージョンでも大体同じ(はず)です。

  • データベースを右クリックし、タスク→スクリプト生成 をクリックします。
    f:id:koogucc11:20170417105553p:plain
  • 次へ をクリックします。
    f:id:koogucc11:20170417105603p:plain
  • 次へ をクリックします。
    f:id:koogucc11:20170417105614p:plain
  • 詳細設定 をクリックします。
    f:id:koogucc11:20170417105624p:plain
  • 次へ をクリックします。
    f:id:koogucc11:20170417105633p:plain
  • 次へ をクリックします。
    f:id:koogucc11:20170417105643p:plain
  • 完了 をクリックします。
    f:id:koogucc11:20170417105705p:plain

 生成された script.sql を参照すると、下記のような DDL 文があります。統計情報をデータベースから一括で抜き出すことができました。

UPDATE STATISTICS [Warehouse].[StockItemHoldings]([PK_Warehouse_StockItemHoldings]) WITH STATS_STREAM = 0x01000000010000000000000000000000B75C7F9A000000001D0F0000......

 SQL Server 2014 SP2 以降、SQL Server 2016 SP1 以降であれば DBCC CLONEDATABASE があるので、こんなことしなくてもいいんですが.....統計情報もクローンできちゃいますから。
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com

 菌に敏感になってきたので、加湿器の掃除でもしよう。