b15 sql server と index の進化 by 熊澤幸生

Post on 08-Jun-2015

504 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

•−

•−

•−

•−

•−

•−

−−

−−

•−

•−

•−

カラム・オリエンテッド

データストアー

行・オリエンテッド

データストアー

コア・キャッシュ・インターコネクト

30MB

L3 Cache

キー1 a1 b1 c1 d1

キー2 a2 b2 c2 d2

a1 a2 a3 ……. an

b1 b2 null ……. bn

CPU

Core2

CPU

Core1

CPU

Core3

CPU

Core4

CPU

Core5

CPU

Core6

CPU

Core7

CPU

Core8

L1

L2

L1

L2

L1

L2

L1

L2

L1

L2

L1

L2

L1

L2

L1

L2

Intel Xeon E7 シリーズの例

CPU

Core9 CPU

Core10

L1

L2

L1

L2

SUM(bigTransactionHistory.Quantity)

Base table

A B C D

データ型

変換と圧縮

データ型

変換と圧縮

データ型

変換と圧縮

Compressed

column segments

R

ow

gro

up

1

Ro

w g

rou

p 2

R

ow

gro

up

3

1M rows/group

Column store index

Blobs

Row

group

Row group

Row

group

Se

gm

en

t

dir

ecto

ry

新しいシステムテーブル: sys.column_store_segments

セグメントメタデータ: サイズ、最小データ id、

最大データ id 等

sys.column_store_segments (セグメント情報)

column

_id

segment

_id version

encoding

_type row_count

has_

nulls base_id

magnitud

e

primary_

dictionary

_id

secondary

_

dictionary

_id min_data_id max_data_id

null_

value

on_disk_siz

e

1 0 1 1 1,048,576 0 -2 1 -1 -1 1 1,048,576 -1 2,796,792

1 1 1 1 1,048,576 0 1,048,574 1 -1 -1 1,048,577 2,097,152 -1 2,796,792

1 27 1 1 1,048,576 0 28,311,550 1 -1 -1 28,311,553 29,360,128 -1 2,796,792

1 28 1 1 1,048,576 0 29,360,126 1 -1 -1 29,360,129 30,408,704 -1 2,796,792

1 29 1 1 854,897 0 30,408,702 1 -1 -1 30,408,705 31,263,601 -1 2,280,632

2 0 1 2 1,048,576 0 -1 -1 0 -1 1,001 50,999 -1 2,097,736

2 1 1 2 1,048,576 0 -1 -1 0 -1 1,001 50,999 -1 2,097,736

2 28 1 2 1,048,576 0 -1 -1 0 -1 1,001 50,999 -1 2,097,736

2 29 1 2 854,897 0 -1 -1 0 -1 1,001 50,999 -1 1,710,704

3 0 1 2 1,048,576 0 -1 -1 0 -1 164,716,290,768,896 164,892,384,428,032 -1 1,240

3 1 1 2 1,048,576 0 -1 -1 0 -1 164,892,384,428,032 165,072,773,054,464 -1 1,256

3 28 1 2 1,048,576 0 -1 -1 0 -1 172,958,333,009,920 173,263,275,687,936 -1 1,720

3 29 1 2 854,897 0 -1 -1 0 -1 173,263,275,687,936 173,508,088,823,808 -1 1,816

4 0 1 2 1,048,576 0 -1 -1 0 -1 1 100 -1 70,696

4 1 1 2 1,048,576 0 -1 -1 0 -1 1 100 -1 80,184

5 28 1 4 1,048,576 0 0 1 -1 -1 0 7,109,871,466 -1 5,059,216

5 29 1 4 854,897 0 0 1 -1 -1 0 7,115,849,544 -1 4,106,080

C1 C2 C3 C5 C6 C4

ColumnStore indexes は、カラム (列) 単位に データを格納する

それぞれのページは単一のカラムが格納される

高いデータ圧縮

従来のページ圧縮と比較し、2 倍の圧縮率を実現

メモリーの有効利用を実現

複数のカラムへのアクセスは並列処理が可能

クエリーが必要なカラムのみをフェッチ

大幅な物理 I/O の削減

HoBT (Heap or B-Tree) store 行単位にデータを格納する

C1 C2 C3 C5 C6 C4

セグメント

グループ

•−

•−

•−

•−

top related