SHOEISHA iD

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

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

最新イベントはこちら!

Security Online Day 2025 春の陣(開催予定)

2025年3月18日(火)オンライン開催

Enterprise IT Women's Forum

2025年1月31日(金)17:00~20:30 ホテル雅叙園東京にて開催

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

お申し込み受付中!

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

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

Oracle技術者から見た、SAP HANA

HANAはどうやって行を識別しているのか

今回は前回予告したように、SAP HANAのカラムストアでどのように行(ロー:Row)が識別されるのかということを解説します。

 本連載の第2回で、Oracle技術者になじみの深いSCOTTスキーマのEMP表を例にカラムストアのイメージを考えてみました。図1はローストアのイメージを示したものです。ローストアは物理的にも1行がそのままの形で格納されているので、ROWIDにより行を特定し、さらに必要なカラムデータを取得します。
 ローストアの場合、「SELECT * FROM TBL 〜」のような「全列ワイルド・カード(アスタリスク)記述」とSELECTの後にカラムを明示的に指定した場合の性能的な違いはあまりありません。
 全列ワイルド・カード記述はむしろSQLコードの読み難さの観点からコーディング規約等で避けられるケースが多いように思われます。
 SAP HANAの場合も全列ワイルド・カード記述が可能なのですが、SAP社のあるセッションに参加した際「性能上の理由からHANAにおいて全列ワイルド・カード記述はお勧めしません。SELECTの後に必要なカラムを明示的に記述して下さい。」という説明があり、印象深かった記憶があります。
 また、そもそもHANAカラムストアにおいてはROWIDに相当する概念はあるのかという疑問も持ちました。
 今回は私が一人のOracleエンジニアとして感じた疑問を起点に、HANAカラムストアの謎に迫っていきたいと思います。

HANAカラムストア イメージのおさらい

 図2はローストアのイメージのまま各カラムにデータを格納したイメージです。
 各カラムの添字は同じ行を示すので、添字が同じデータを横串に連結すればリレーショナルデータベースのタプルを簡単に表現できることがわかります。
 ところが、この方法の欠点は重複データを含むため、容量が無駄になるだけでなく例えばJOBカラムの「MANAGER」を「DIRECTOR」に一斉変更したい場合、複数のデータを更新しなければならなくなることです。

 一方、図3は重複排除かつソートした状態でデータを格納したイメージです。
 図2の欠点を解決していますが、各カラムの添字が異なるのでタプルの表現が困難になります。
 SAP HANAではメモリ上に展開された配列構造を応用してカラムストアを実現しているのですが、実際にどのような仕組みになっているのでしょうか。今回はその概要を説明します。

次のページ
カラムストアを構成する2つの配列

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

  • Facebook
  • X
  • Pocket
  • note
Oracle技術者から見た、SAP HANA連載記事一覧

もっと読む

この記事の著者

三原健一(ミハラケンイチ)

 ベンチュリーコンサルティング株式会社 技術顧問 現在、大手SIerの性能問題対応チームに従事。主にOracleデータベースの性能問題解決や負荷テストの計画・実施・分析・評価等を担当。前職のインサイトテクノロジーではメルマガやブログの執筆に関わる。 ・ブログ「サイクル&オラクル

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/10198 2017/12/22 06:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング