SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

正しく使えば速くなる!多田が教えるSQL Server最適化のオキテ

SQL Serverの大きな特徴、クラスタ化インデックスを押さえよう!


あっというまに今年も後半に突入してしまいました。このところ毎日結構暑くなってきて、電力が心配になってきましたが、みなさん節電されていることと思います、無茶して体をこわさない程度にしましょう。無駄を省いて効率よくリソースを使いましょうというところでは、エアコンもデータベースも同じですね。エアコンの節電のコツは、設定温度を下げすぎないこと、室外機の置き場に注意すること、自動運転にすること、フィルターを掃除すること、古いエアコンは買い換えることなどだそうです。データベースに置き換えると、無駄にパワーを使うクエリを使用しないこと、物理設計に注意すること、自動チューニングにまかせること、モニタリングとメンテナンスすること、新しいバージョンを使うことということでしょうか?

インデックスが効いているとIOが少なくて済む

 さて、前回はパフォーマンスについての全般的なお話と、インデックスの基本的なところを試してみました。今回も続けてインデックスに注目してみたいと思います。前回試してみた結果を誤解を恐れずにまとめると、「インデックスが効いているとIOが少なくてすむ」「IOが少ない方が速い」ということです。

 実は結構いろいろなことをすっ飛ばしましたので補足させてください。

 リレーショナルデータベース中のデータはテーブルに入っており、テーブルはファイル上ではページという単位に分割されて記録されています。例で1240ページ読んだと書いていたのは、このページのことです。ある行を探したいときに、インデックスがないとテーブル上のデータを全ページを読みながら探すことになります。インデックスがついていると、まずインデックスを見て、そこにこのデータは何ページ目の何行目に入っているよと書いてあって、そのページだけ見に行けば欲しいデータが見つかります。イメージとしては1冊の本の中から特定の単語や文章を見つけたいときに、本の先頭から全ページ読んで探すのがインデックスのないパターン、索引のページを見に行って目的の単語などをみつけてページ番号を確認してからそのページを見に行くのがインデックスありのパターンです。

 インデックス自身もテーブルと同じく、データベースのファイル上では複数のページとして存在しています。インデックスのページにはインデックスのキーと行ロケータ(目的の行を示すもの、本の例ではページ番号)が入っており、Bツリーという構造になっています。このBツリーの末端のページの中の行が、実際のデータページの中の行を指しています。

インデックスのBツリー構造の図
インデックスのBツリー構造の図

  詳しくはSQL Server Books Onlineの次のページ(非クラスタ化インデックスの構造)をご参照ください。

次のページ
クラスタ化インデックスとは

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
正しく使えば速くなる!多田が教えるSQL Server最適化のオキテ連載記事一覧

もっと読む

この記事の著者

多田典史(タダヨリヒト)

日本マイクロソフト株式会社SQL Server カスタマー アドバイザリー チーム
プリンシパルプログラムマネージャーSQL Serverとの関わりは日本マイクロソフトに入社した当時のSQL Server 7.0の発売以前から。マイクロソフトコンサルティングサービスに所属していたときにはBI系のプロジェク...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3357 2012/02/10 17:40

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング