おがわみつぎの SQL Server な BLOG

雑多な日々

PASSJブログ ホーム 連絡をする RSS ATOM Login
  276 投稿数 :: 0 ストーリー :: 329 コメント :: 67 トラックバック

ニュース


Microsoft Most Valuable Professional

MVP プロファイル














過去の記事

カテゴリ

イメージギャラリ

BLOGS

MVP

技術系

白血病

  • [SQL Server 2005]使用されていないインデックス一覧

sys.dm_db_index_usage_stats 動的管理ビューを使用して、SQL Server 2005 が起動、AUTO_CLOSE、デタッチ、シャットダウンされてからの統計を取得する
注意点として、システムテーブルや動的管理ビューを参照するときに WITH(NOLOCK) を記述して、ロックをかけないようにすること
バックグラウンドでトランザクションを発生させ、コミットしていない状態があるとシステムテーブルなどがロックされるため
※Tech・Ed 2007 Yokohama T6-402 デモの一部

-- 使用されていないインデックスリスト

-- sys.dm_db_index_usage_stats 動的管理ビューに存在していないもの

-- SQL Server 2005 の起動、AUTO_CLOSE、デタッチ、

-- シャットダウンすると初期化される

SELECT

      i.object_id [オブジェクトID],

      object_name(i.object_id) [オブジェクト名],

      i.index_id [インデックスID],

      i.name [インデックス名]

FROM

      sys.indexes i WITH(NOLOCK),

      sys.objects o WITH(NOLOCK)

WHERE

      objectproperty(o.object_id, 'IsUserTable') = 1

      AND

      i.index_id NOT IN

      (

           SELECT

                 s.index_id

           FROM

                 sys.dm_db_index_usage_stats s WITH(NOLOCK)

           WHERE

                 s.object_id = i.object_id

                 AND

                 i.index_id = s.index_id

                 AND

                 s.database_id = DB_ID()

      )

      AND

      o.object_id = i.object_id

ORDER BY

      [オブジェクト名],

      [インデックスID],

      [インデックス名];

投稿日時 : 2007年7月22日 20:31

Feedback

No comments posted yet.

コメント

タイトル:
名前:
Url:
コメント: