EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

第6回 もう一度、列ストアインデックスの良さを見つめなおす

edited by DB Online   2012/11/26 00:00

早いものでSQL Server 2012がリリースされてから数カ月が過ぎました。様々なお客様に採用いただき、技術的な問い合わせを受けることも多くなってきました。そんな日々の中で「おや?」と思うことがあります。SQL Server 2012の新機能のなかでも、とりわけ大きく注目されていた列ストアインデックスのことが、あまり話題に上らないのです。もう一方の目玉であるAlwaysOnは今も注目の的で、様々なお客様で導入が検討されているのと比べると、ちょっとした悲劇のようでもあります。そこで今回は、SQL Serverの進化の過程で、本当に画期的な一歩と呼ぶべき列ストアインデックス(正式名称は「xVelocity メモリ最適化列ストア インデックス」ですが、長いので本稿では省略します)について、日本マイクロソフト プレミアフィールドエンジニア 平山が今一度見つめなおしていきます。

どんな時に列ストアインデックスを使うのか

 列ストアインデックスの基本的な情報について以前、「カラムストアインデックスのすべて」の記事で紹介しました。列ストアインデックスの特徴として、処理の向き不向きを解説するなかで「DWH系大規模テーブルでの使用が最も威力を発揮する」ことを伝えています。列ストア型のオブジェクトのターゲットは、まさにそこにあるわけでして、至極当然なことです。

 それなのに(ああ、それなのに)、たまに列ストアインデックスの話が出ると「OLTP的に更新ができない」ことが、くつがえすことができない欠点のように語られて、つらい思いをすることがあります。

 列ストア型オブジェクトは、従来の行ストア型オブジェクトの利点とは別の観点からDWH系大量処理の速度を向上させています。そのため、行単位でデータを取り出して操作する処理に制約があるのは、ある程度(現時点では)やむを得ないかもしれません。もちろん世の中にはデータを更新できる列ストア型データベース製品もあります。でも、そのような製品であっても、OLTPのようなデータ更新を決して得意としているわけではありません。そのような些末な点よりも、ぜひSQL Server 2012が実装した方式の優れた点に目を向けてみてください。

 多くのベンダーは、列ストア型データベース製品と行ストア型データベース製品を別々に出荷しています。いうまでもなく双方を使おうとするとライセンスコスト、開発コストから運用コストまで、別々に必要です。一方でSQL Server 2012では、どちらの形式であっても同じインスタンスで処理できます。つまり、様々な面(コストやアプリケーションの開発利便性など)でメリットがあります。

 同じSQL Serverインスタンスの中で、オブジェクトを使い分けることによってOLTPにもDWHにも対応することができるというわけです。そのような利点を享受するためにも、本稿で列ストアインデックスをもっと快適に使うためのいろいろなポイントを紹介します。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 平山理(ヒラヤマオサム)

    日本マイクロソフト株式会社 プレミアフィールドエンジニアリング プレミアフィールドエンジニア 日本マイクロソフトの Premier Field Engineering 部で、お客様に SQL Server をスムーズにお使いいただくための様々なお手伝いをしています。Sybase (現 SAP) 勤務時代の 5 年間とマイクロソフトでの 12 年間、データベース道を極めるために精進する毎日です。 二人の娘の父親であり、ハードロックを好む「バッタもん」ギタリストであり、毎月 300 km くらい走る (わりと) シリアス ランナーでもあります。著書に「絵で見てわかる SQL Server の内部構造」(翔泳社)

バックナンバー

連載:SQL Server 2012 Deep Dive

もっと読む

All contents copyright © 2007-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5