 |

|
Sybase IQで学ぶデータウェアハウス |
第3回:インデックスが9種類もある理由とは?
著者:サイベース 2007/7/12
|
|
|
1 2 3 次のページ
|
 |
Sybase IQの特徴は垂直パーティション
|
前回、Sybase IQの最も大きな特徴は、テーブルデータの保持方式とそこに対するアクセス方法である垂直パーティションと呼ばれるデータ構造であると解説しました。また、生データをSybase IQデータベースに格納する3つのプロセスを紹介し、最初のプロセスである「カラムパーティション」について解説しました。
今回は、「ビットワンズインデックス」と「データ圧縮」のプロセスについて深く掘り下げ、解説していきます。
|
インデックス化(ビットワイズインデックス)
|
カラムごとにカラムパーティションされたデータは、次にインデックスへと変換されます。

図1:インデックス化のプロセス (画像をクリックすると別ウィンドウに拡大図を表示します)
Sybase IQのインデックスの特徴は、まず、テーブルとインデックスの区別が無い、ということがあげられます。つまり、テーブル中のカラムはすべてインデックス化されます。さらに、1つのカラムに対して9種類のインデックスから用途に応じたものを複数することもできます。
このため、どのようなクエリが実行されても必ずインデックスが使われるため、定型クエリ/非定型クエリを問わず、安定した性能を発揮できますし、カラムがSQL文中でどのような使われ方をしていても最適なインデックスを選択することができます。
|
9種類のインデックス
|
Sybase IQは用途別に9種類のインデックスを装備しています。
インデックス名称 |
略記 |
用途 |
Fast Projection |
FP |
射影、集合関数を伴う射影、文字列検索など。デフォルトで生成 |
Low Fast |
LF |
結合、group by、count()、min()、max()、<>、INリスト、範囲検索など。カーディナリティ1,500以下 |
High Group |
HG |
LFに同じ。カディナリティ1,500超 |
High Nongroup |
HNG |
範囲検索、集合検索を伴う条件句 |
Compare |
CMP |
2つのカラム間の大小比較 |
Word |
WD |
文字列検索(like) |
Date |
DATE |
data型データの範囲検索 |
Datetime |
DTTM |
datatime型データの範囲検索 |
Time |
TIME |
time型データの範囲検索 |
表1:Sybase IQの9種類のインデックス
|
高速な射影処理を実現する「Fast Projection(FP)」
|
Fast Projectionは、デフォルトで無条件に作成されるインデックスです。Projectionとは、リレーショナルデータベースの基本操作である射影・選択・結合のうち射影を意味し、文字通り高速に指定したカラムを抜き出す処理に使われます。
Fast Projectionは、カーディナリティにより1バイトFP、2バイトFP、フラットFPの3つの形態があります。

図2:Fast Projectionの3つの形態 (画像をクリックすると別ウィンドウに拡大図を表示します)
1バイトFPと2バイトFPは、上図の通り、値を保持するテーブルとその値を参照するポインターの配列から構成され、カーディナリティが低い場合にデータをコンパクトに保持することができます。
配列が1バイトで表現できる場合、すなわちカーディナリティが256以下の場合は1バイトFPが作成され、256を超え65,536以下(これは2バイトで表現できる範囲ですが)の場合は2バイトFPが作成されます。
カーディナリティが65,536を超える場合には、ポインターではなく値そのものを保持する、いわゆる「テーブル」に近い形式で作成され、これをフラットFPと呼びます。
Fast Projectionは、いずれの形態にしても論理的にインデックスを分割しパラレル処理をすることが可能で、単純なカラム抽出だけでなく、文字列検索によるカラム抽出、SUM()関数などを伴ったカラム抽出において高速な検索が可能できます。
|
1 2 3 次のページ
|
|

|
著者プロフィール
サイベース株式会社
1984年、カリフォルニア州バークレーで設立。情報の管理能力と、卓越したレベルでデータの信頼性とセキュリティを提供し、データセンターからアクションポイントまで、情報の管理と可動化のみに焦点を合わせた最大のグローバルエンタープライズソフトウェア企業として活動。サイベース株式会社は、米国 サイベース社 の日本法人として1991年に設立。
|
|
|
|