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

EnterpriseZine / 2012年11月26日 0時0分

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

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

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

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

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

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

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

平山理[著]

■関連記事

ユーザー事例から遠く離れて[2012年11月12日]

勘定奉行はSQL Serverがお好き。―ISVベンダーさんにバンドル向きデータベースについて訊いてきました[2012年11月05日]

データベース整合性チェックを助ける DBCC CHECKDB [2012年10月31日]

sp_server_diagnosticsの情報からみる SQL Server のパフォーマンス[2012年10月12日]

SQL Serverのスレッドスケジューリング (後編)[2012年09月05日]

■記事全文へ

EnterpriseZine

この記事に関連するニュース

トピックスRSS

ランキング