Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

B15 SQL Server と Index の進化 by 熊澤幸生

649 views

Published on

Published in: Technology
  • Be the first to comment

B15 SQL Server と Index の進化 by 熊澤幸生

  1. 1. • −• −• −• − −• − − − − −
  2. 2. • − − − − − − − − − −• − −• −
  3. 3. •• −••
  4. 4. • − − − − − − − − − −
  5. 5. •CPU CPU CPU CPU CPU CPU CPU CPU CPU CPUCore1 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
  6. 6. ••
  7. 7. • −
  8. 8.
  9. 9. • −
  10. 10. SUM(bigTransactionHistory.Quantity)
  11. 11. ••••••
  12. 12.
  13. 13.
  14. 14.
  15. 15. 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 等
  16. 16. 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
  17. 17. • − −• − − −• − − −
  18. 18. HoBT (Heap or B-Tree) store … 行単位にデータを格納するC1 C2 C3 C4 C5 C6 ColumnStore indexes は、カラム (列) 単位に データを格納する それぞれのページは単一のカラムが格納 される 高いデータ圧縮 従来のページ圧縮と比較し、2 倍の圧縮 率を実現 メモリーの有効利用を実現 複数のカラムへのアクセスは並列処理が可能 クエリーが必要なカラムのみをフェッチ 大幅な物理 I/O の削減
  19. 19. セグメント •C1 C2 C3 C4 C5 C6 • • 行 • グループ • •
  20. 20. •••••••••••••••••••••••••••••
  21. 21. • − − − − −• − −• −
  22. 22. • − −• − −• −
  23. 23. •••••

×