SHOEISHA iD

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

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

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

Security Online Day 2022

2022年9月16日(金)10:00~17:10

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

お申し込み受付中!

今さら聞けないSQL Serverのメモリ最適化テクノロジーと、押さえておきたいSQL Serverのデータベースセキュリティ

今さら聞けない列ストアインデックスの仕組みと進化・活用シーン(後編)

 前編では前提としてご理解頂きたいxVelocityテクノロジに関して少々長めにご説明しました。後編では列ストアインデックスの進化をバージョンを追ってご説明し、皆様がご担当されているシステムで列ストアインデックスを活用できる場面が増えてきていることをご理解頂ければ幸いです。

SQL Server 2012 – 列ストアインデックスを実装した最初のリリースとその課題

 DWH ワークロードでの劇的な性能向上が見込める列ストア インデックスでしたが、SQL Server ^2012 リリース当初は、以下の制限がありました。

  • 行データの更新・削除・挿入は行えない
  • 主キーや外部キー、一意インデックスとして利用できない。そのため、データを更新するには、以下のような対処が必要でした。
  • 列ストア インデックスを無効化し、データ更新後に、再構築する
  • ステージング テーブルでデータを更新・列ストア インデックスを作成し、ターゲット テーブルにパーティション切り替えを実施
  • 変更されないデータを格納するテーブルに列ストア インデックスを作成し、変更されるデータを格納したテーブルと UNION させたビューを作成
図1:読取り専用 非クラスター化 列ストアインデックス(SQL Server 2012 当時)
図1:読取り専用 非クラスター化 列ストアインデックス(SQL Server 2012 当時)

 SQL Server 2012 リリース当時は、実システムでの列ストア インデックスの利用は運用コストとパフォーマンス向上のトレードオフを見極める必要がありました。

 詳細については「カラムストア インデックスのすべて(後編)」をご覧ください。

SQL Server 2014 - 列ストア インデックス適用範囲の拡大と運用コスト削減に向けた機能強化

 SQL Server 2014 では前述の制限を無くした、更新可能なクラスター化 列ストア インデックスが導入されました。これにより、より多くの要件で列ストア インデックスのメリットを享受して頂けるようになりました。多くのお客様で運用負荷の低い列ストア インデックスの導入が実現しましたが、以下の制限は依然として残っていました。

  • クラスター化列ストア インデックスはテーブルに作成できる唯一のインデックス(他のインデックスと共存できない)
    →依然として主キーや外部キー、一意インデックスとしては利用できない
  • 非クラスター化列ストア インデックスは読み取り専用
  • SQL Server 2014 から導入されたメモリ最適化テーブルに対して、列ストア インデックスは作成できない
図2:更新可能クラスター化 列ストアインデックス(SQL Server 2014 当時)
図2:更新可能クラスター化 列ストアインデックス(SQL Server 2014 当時)

SQL Server 2016 - 様々なワークロードへの対応

 世界中のデータが爆発的な増加傾向にあること、それに伴うリアルタイム分析要求がさらに高まることを鑑み、Microsoftはそれらのニーズへの対応を製品・サービスの強化戦略の大きな柱に据えています。DWH において利用が拡大してきた列ストア インデックスですが、SQL Server 2016 では前述の制限を解消すると共に、膨大なデータへのリアルタイム分析要求への対応を開始しました。

クラスター化列ストア インデックスに対する、非クラスター化インデックス(B-Tree)作成のサポート

 SQL Server 2016 では、以前のリリースではサポートしていなかったクラスター化列ストア インデックスに対する主キー インデックスや外部キー インデックスの作成ができるようになりました。これにより、列ストア化できるテーブルの制限が大幅に緩和されました。

 列ストア インデックスが苦手とする狭い範囲でのスキャンやシーク、等価条件での検索などの処理はB-Treeインデックスの追加で対応できるようになり、チューニングの幅が広がりました。

図3:クラスター化列ストア インデックスに対する非クラスター化インデックス
図3:クラスター化列ストア インデックスに対する非クラスター化インデックス
非クラスター化列ストア インデックスの DML 対応 - ディスクベースの OLTP 表に対するリアルタイム オペレーショナル分析の実現

 ヒープ(テーブル)またはクラスター化インデックスに対して作成された非クラスター化 列ストア インデックスが更新・削除・挿入処理に対応しました。これにより、OLTP 処理で利用されるような変更が頻繁に発生する表に対するクエリのチューニングにも非クラスター化列ストア インデックスを利用できるようになりました。

図x:更新可能 非クラスター化列ストア インデックス
図4:更新可能 非クラスター化列ストア インデックス
メモリ最適化テーブルに対するクラスター化列ストア インデックス作成のサポート - インメモリの OLTP 表に対するリアルタイム オペレーショナル分析の実現

 メモリ最適化テーブルにクラスター化列ストア インデックスを作成できるようになりました。これにより、さらにシビアな性能が求められるシステムにおいてもリアルタイム オペレーショナル分析を実現することができるようになりました。

 また、メモリ最適化テーブルに作成されたクラスター化列ストアインデックスはストレージにも永続化されるため、次回起動時に列セグメントを形成し直す必要なく非常に効率的な実装になっています。

図5:メモリ最適化テーブルに対するクラスター化列ストア インデックス
図5:メモリ最適化テーブルに対するクラスター化列ストア インデックス

 上記二つのリアルタイム オペレーショナル分析シナリオでは、ベースとなるテーブルに対するデータの変更は自動的にメンテナンスされるため、分析およびOLTP ワークロードにおいてデータの遅延はありません。リアルタイム分析を利用するシナリオでは、ETL の必要性およびDWHを別途用意するためのコストと複雑性が大幅に削減されます。

 リアルタイム オペレーショナル 分析は、オペレーショナル ワークロードと分析ワークロードの両方を実行する ERP のようなシングルデータソース環境でのシナリオをターゲットとしています。分析ワークロードを実行する前に複数データソースのデータを統合したDWHや、キューブのような事前集計による分析パフォーマンスの向上を目指したものを置き換えるものではない点についてご留意ください。

次のページ
列ストアへのデータロード

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

  • Facebook
  • Twitter
  • Pocket
  • note
今さら聞けないSQL Serverのメモリ最適化テクノロジーと、押さえておきたいSQL Serverのデータベースセキュリティ連載記事一覧

もっと読む

この記事の著者

川野 純(カワノ ジュン)

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/8554 2016/10/26 06:00

Job Board

PR

おすすめ

アクセスランキング

アクセスランキング

イベント

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

2022年9月16日(金)10:00~17:10

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

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

メールバックナンバー

アクセスランキング

アクセスランキング