More Related Content Similar to B15 SQL Server と Index の進化 by 熊澤幸生 Similar to B15 SQL Server と Index の進化 by 熊澤幸生 (10) More from Insight Technology, Inc. More from Insight Technology, Inc. (20) B15 SQL Server と Index の進化 by 熊澤幸生2. •
−
•
−
•
−
•
−
−
•
−
−
−
−
−
3. •
−
−
−
−
−
−
−
−
−
−
•
−
−
•
−
7. •
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
Core1 Core2 Core3 Core4 Core5 Core6 Core7 Core8 Core9 Core10
L1 L1 L1 L1 L1 L1 L1 L1 L1 L1
L2 L2 L2 L2 L2 L2 L2 L2 L2 L2
コア・キャッシュ・インターコネクト
30MB
L3 Cache
Intel Xeon E7 シリーズの例
行・オリエンテッド カラム・オリエンテッド
データストアー データストアー
キー1 a1 b1 c1 d1 a1 a2 a3 ……. an
キー2 a2 b2 c2 d2 b1 b2 null ……. bn
19. Base table
Column store index
Compressed
A B C D Blobs
column segments
Row group 3 Row group 2 Row group 1
データ型 Row
変換と圧縮 group
Segment
directory
Row
データ型
group
変換と圧縮
Row
データ型 group
変換と圧縮
1M rows/group 新しいシステムテーブル: sys.column_store_segments
セグメントメタデータ: サイズ、最小データ id、
最大データ id 等
20. sys.column_store_segments (セグメント情報)
secondary
primary_ _
column segment encoding has_ magnitud dictionary dictionary null_ on_disk_siz
_id _id version _type row_count nulls base_id e _id _id min_data_id max_data_id value 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
21. •
−
−
•
−
−
−
•
−
−
−
22. HoBT (Heap or B-Tree) store
… 行単位にデータを格納する
C1 C2 C3 C4 C5 C6
ColumnStore indexes は、カラム (列) 単位に
データを格納する
それぞれのページは単一のカラムが格納
される
高いデータ圧縮
従来のページ圧縮と比較し、2 倍の圧縮
率を実現
メモリーの有効利用を実現
複数のカラムへのアクセスは並列処理が可能
クエリーが必要なカラムのみをフェッチ
大幅な物理 I/O の削減
23. セグメント
•
C1 C2 C3 C4 C5 C6
•
•
行 •
グループ
•
•
25. •
−
−
−
−
−
•
−
−
•
−