日本におけるSQL Serverコンサルタントの第一人者、熊澤幸生氏にチューニングのノウハウを語っていただくシリーズの第2弾は、SQL Server 2005に特化した内容をお届けする。インタビュアーは引き続き、SQL Serverへの造詣が深いITジャーナリスト、工藤淳氏が担当する。(編集部)
前回「SQL Server 2005でガラッと変わった個所とは?」では、SQL Server 2005の注目すべき新機能を紹介しました。今回は、その中でもイチ押しの機能である「動的管理ビュー」を理解していただこうと思います。SQL Server のパフォーマンス・チューニングを手掛けるエンジニアにとって、動的管理ビューは画期的です。これまでほとんどドキュメント化されず、その状態を参照する方法も知らされていなかったSQL Serverの内部が、ほぼ全部といってよいくらい可視化されたからです。
動的管理ビュー(DMV:Dynamic Management View)と動的管理関数(DMF:Dynamic Management Function)の2つの用語を覚えましょう。これらはSQL Server 2005から入ってきた新しい概念です。
動的管理ビューには「プラットフォームからのパフォーマンス・チューニングに有効な動的管理ビュー」「個々のクエリチューニングに非常に役に立つ動的管理ビュー」という2つの代表的なビューがあります。これ以外にも、オプティマイザがどのようなクエリプランを作成しているかといった「実行プランの内部を見る動的管理ビュー」もあります。さらには、例えば特定のオブジェクトに特化して、「インデックスが有効に使われているか追跡する動的管理ビュー」などというのもあります。このことからも分かるように、ひとくちに動的管理ビューといっても非常に範囲が広いことを、まずは理解してください。
パフォーマンス・チューニングに用いるツールとして、SQL Server 2000ではパフォーマンスモニタを使っていました。SQL Server 2000には「sysperfinfo」という仮想テーブルがあり、パフォーマンスモニタはこの中にあるオブジェクトごとのパフォーマンス・カウンタ値を取得してユーザーに提供していました。エンジニアはそれをどう判断すべきか悩みながらチューニングを行っていたのです。
このパフォーマンスモニタが、SQL Server 2005では動的管理ビューに変わったのです。動的管理ビューは実に多彩なカウンタを可視化してエンジニアに提供してくれます。この膨大なカウンタを簡単に活用できるよう、カウンタ呼び出しコマンドのネーミングルールが決まっています。基本的な命名規約では、頭に必ずスキーマ名の「sys.」があって、その後が「dm_」になり、その後がいろいろ変わっていきます。この規約を知っていればどういうタイプのカウンタなのかがすぐに分かります。例えばカテゴリ名の「os」に含まれる「performance_counters」であれば、下のようなビューになります。
これはパフォーマンス・カウンタを表示させるコマンドです。動的管理ビューと動的管理関数のカテゴリを表1にまとめます。ここにはService Brokerというメッセージベースの非同期処理のための新しい機能などもあります。さらにイベントを見るオブジェクトやSQL OS、インデックス、ミラーリング、データベース全体、トランザクション……これらに関するカウンタを参照できる機能がひととおり用意されています。
カテゴリ | プレフィックス名 | |
---|---|---|
共通言語ランタイム関連の動的管理ビュー | sys.dm_clr_* | |
データベースミラーリング関連の動的管理ビュー | sys.dm_db_mirroring_* | |
データベース関連の動的管理ビュー | sys.dm_db_* | |
実行関連の動的管理ビューおよび関数 | sys.dm_exec_* | |
フルテキスト検索関連の動的管理ビュー | sys.dm_fts_* | |
インデックス関連の動的管理ビューおよび関数 | sys.dm_db_* | |
I/O関連の動的管理ビューおよび関数 | sys.dm_io_* | |
クエリ通知関連の動的管理ビュー | sys.dm_qn_* | |
レプリケーション関連の動的管理ビュー | sys.dm_repl_* | |
Service Broker関連の動的管理ビュー | sys.dm_broker_* | |
SQL Serverオペレーティングシステム関連の動的管理ビュー | sys.dm_os_* | |
トランザクション関連の動的管理ビューおよび関数 | sys.dm_tran_* | |
表1 動的管理ビューと動的管理関数のカテゴリ一覧 詳細はMSDN2「動的管理ビューと動的管理関数」を参照 |
チューニングに大変革をもたらす動的管理ビュー
Page 1
・パフォーマンスモニタから動的管理ビューへ
Page 2
・動的管理ビューを活用してWait事象を解明する
・動的管理ビューはチューニング情報の宝庫
Copyright © ITmedia, Inc. All Rights Reserved.