SQL Server データ圧縮
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>SQL Server]]
* 目次 [#v7039b0b]
#contents
*概要 [#i827c095]
SQL Server は、2008から、
-テーブルとインデックスの両方で
-「データ圧縮」(行とページの圧縮)
をサポートしている。
なお、「データ圧縮」は、
-SQL Server 2008のEnterprise EditionおよびDeveloper Editi...
-[[SQL Server Management Studio>SSMS]]の「データ圧縮ウィ...
*圧縮対象 [#u8172dd0]
**[[テーブル>SQL Server のインデックス]] [#y07b3bb6]
***クラスタ化インデックス [#u1e96844]
***非クラスタ化インデックスのヒープ [#y913c235]
**[[インデックス>SQL Server のインデックス]] [#y483dace]
***非クラスタ化インデックス [#o8394a6c]
***インデックス付きビュー [#b3084290]
**[[パーティション>SQL Server パーティション分割]] [#s61b...
「パーティション分割」されているテーブルとインデックス。~
※ この場合、「パーティション」毎に、別々の圧縮オプション...
***パーティション テーブル [#ee5689d6]
***パーティション インデックス [#lf021b2a]
*行圧縮とページ圧縮 [#ud017f6b]
**行圧縮 [#h43c956b]
行圧縮は、
>SQL Server 2005 SP2以降で提供されたvardecimalデータ型と...
(固定長データ型の利用していない領域を削り、可変長データ...
で、圧縮を行う。
**ページ圧縮 [#w84bcaf3]
***圧縮方法 [#y0e95515]
-プレフィックス圧縮
--このプレフィックスは、=列値の先頭から一致するデータパ...
--列毎に、プレフィックスがページのヘッダに移動される。
--列の値は、プレフィックス参照に変更される。
-ディクショナリ圧縮
--このディクショナリは、=列値と完全に一致する値のリスト。
--プレフィックス圧縮の完了後、ディクショナリ圧縮が適用さ...
--ディクショナリ圧縮は、1つの列に制限されない。~
ページ上の任意の場所を対象とすることができる。
***ページと圧縮の方法 [#b27bb774]
-リーフ レベル ページ
--行圧縮
--プレフィックス圧縮
--ディクショナリ圧縮
-リーフ レベル ページ以外のページ
--行圧縮のみが使用される。
*注意事項 [#pf8f3354]
**必要なリソース [#w86ccfda]
***実行時 [#k8bdf4e0]
-CPUリソースを消費して、I/Oコストを下げるというもの。
--CPUコスト: 圧縮・解凍のオーバヘッド
--ストレージ コスト: I/Oとサイズの双方
-従って、何を圧縮すべきかどうかを検討する必要がある。
-参考
--第7回 大規模データ処理におけるCPUとI/Oのバランスをどう...
RDBMSでも大規模データをあきらめないためには|gihyo.jp … ...
http://gihyo.jp/admin/serial/01/rdbms/0007
***圧縮時 [#mb97c2e4]
-圧縮には、インデックス再構築の実行と同等の、ディスクの空...
-オンラインのテーブル(非クラスタ化インデックスのヒープ)...
**適用先 [#zc2fcf44]
***テーブル・インデックス [#gff6a90b]
-システム テーブルには適用されない。
-「クラスタ化インデックス」には、自動的に反映される。
-「非クラスタ化インデックス」には、自動的には反映されない。
***サイズ [#u2f8f3b5]
-圧縮をしても、テーブルやインデックスの最大行サイズは変更...
-最大行サイズが8,060バイトを超える場合、テーブルに圧縮を...
-サイズが原因で特殊なページに格納されたLOBデータは圧縮を...
**運用時の考慮点 [#oa87f4a5]
-テーブル(非クラスタ化インデックスのヒープ)の圧縮設定を...
「非クラスタ化インデックス」を再構築して、行識別子ポイン...
***ページ圧縮のトリガ [#w9bb9773]
-ページ圧縮は、ページがいっぱいになった状態で、~
(INSERT INTO、BULK INSERTを使用して、)~
行追加することによって開始される。
-以降の行追加に対しては、基本的にページ圧縮が適用される。
-既存のテーブルに適用する場合は、直ちに各ページが評価・再...
***圧縮の推定、代替 [#we23d1ad]
-圧縮による削減量の推定には、sp_estimate_data_compression...
-データの断片化が進んでいる場合は、インデックス再構築でも...
***SQL Serverコンポーネントへの影響 [#z891dac9]
-影響の無いもの
--バックアップ・リストア()
--ログ配布(トランザクション・ログのため)
-影響の有るもの
--クエリ プラン~
ページ数とページあたりの行数が異なるためクエリ プランの変...
--一括インポート操作と一括エクスポート操作~
エクスポート時は、非圧縮のデータとなるため、操作に圧縮・...
--レプリケーション~
以下のレプリケーションの範囲に従って作成するスクリプトを...
---テーブルまたはインデックスのパーティション構成をレプリ...
パーティション構成のスクリプトを作成する。
---圧縮設定のレプリケートする。~
圧縮設定のスクリプトを作成する。
*データ圧縮とパーティション [#d32ff101]
「パーティション分割」と「データ圧縮」の併用によって、~
必要な「パーティション」のみ「データ圧縮」するよう選択で...
**圧縮対象のパーティション [#r4d705e7]
下記のような「パーティション」は、~
「データ圧縮」しない(若しくは行圧縮のみ適用)。
-頻繁にアクセスする「パーティション」
-データの変更が頻繁に発生する「パーティション」
**圧縮対象でないパーティション [#d0ef9430]
下記のような「パーティション」は、~
「データ圧縮」する(ページ圧縮を適用)。
-あまりアクセスしない「パーティション」
-確定している過去データの読み取り専用「パーティション」
**圧縮時の注意点 [#x492c175]
「パーティション」を「データ圧縮」する場合は、以下の点に...
***既存の「パーティション」の分割 [#t6ad53c7]
元の「パーティション」のデータ圧縮属性が、~
分割後の双方の「パーティション」に継承される。
***既存の「パーティション」のマージ [#xd0bf8c0]
マージ先「パーティション」のデータ圧縮属性が、~
得られる「パーティション」に継承される。
***既存の「パーティション」の切替え [#k93a19d0]
「パーティション」のデータ圧縮属性が、~
テーブルのデータ圧縮属性と一致する必要がある。
**変更時の考慮点 [#a394736d]
***パーティション or テーブル全体 [#uae2cd19]
既存の「パーティション テーブル」・「パーティション イン...
圧縮設定の変更( = 再構築)に使用できる構文には、次の2つ...
-index_option (Transact-SQL)~
http://msdn.microsoft.com/ja-jp/library/ms186869.aspx
--参照されているパーティションのみ再構築
ALTER { TABLE | INDEX } object_name
REBUILD PARTITION = partition_number WITH (DATA_COMPRESS...
--テーブル全体を再構築(パーティションの既存の圧縮設定を...
ALTER { TABLE | INDEX } object_name
REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE ON
PARTITIONS ({ <partition_number_expression> | <range> })...
***クラスタ化インデックスの削除 [#y9419c87]
-オフライン で「パーティション分割」された「クラスタ化イ...
--「クラスタ化インデックス」の上位レベルだけが削除される...
「パーティション構成」を変更しない限り、ヒープ上のデータ...
--これは、「パーティション構成」を変更するか、明示的に~
ALTER TABLE ... REBUILD ... ステートメントを実行、再構築...
-なお、オンラインで「パーティション分割」された「クラスタ...
--SQL Server によって、自動的に再構築され、データ圧縮属性...
*圧縮の効果 [#of7bba94]
-PRIME3 - PROJECT3~
http://jp.fujitsu.com/solutions/sap/brochures/pdf/prime3p...
*参考 [#s712790e]
-データベース機能
--行の圧縮の実装~
https://msdn.microsoft.com/ja-jp/library/cc280576.aspx
--ページの圧縮の実装~
http://msdn.microsoft.com/ja-jp/library/cc280464.aspx
-データ圧縮:キャパシティ プランニングとベスト プラクティ...
https://technet.microsoft.com/ja-jp/library/dd894051.aspx
----
Tags: [[:データアクセス]], [[:SQL Server]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>SQL Server]]
* 目次 [#v7039b0b]
#contents
*概要 [#i827c095]
SQL Server は、2008から、
-テーブルとインデックスの両方で
-「データ圧縮」(行とページの圧縮)
をサポートしている。
なお、「データ圧縮」は、
-SQL Server 2008のEnterprise EditionおよびDeveloper Editi...
-[[SQL Server Management Studio>SSMS]]の「データ圧縮ウィ...
*圧縮対象 [#u8172dd0]
**[[テーブル>SQL Server のインデックス]] [#y07b3bb6]
***クラスタ化インデックス [#u1e96844]
***非クラスタ化インデックスのヒープ [#y913c235]
**[[インデックス>SQL Server のインデックス]] [#y483dace]
***非クラスタ化インデックス [#o8394a6c]
***インデックス付きビュー [#b3084290]
**[[パーティション>SQL Server パーティション分割]] [#s61b...
「パーティション分割」されているテーブルとインデックス。~
※ この場合、「パーティション」毎に、別々の圧縮オプション...
***パーティション テーブル [#ee5689d6]
***パーティション インデックス [#lf021b2a]
*行圧縮とページ圧縮 [#ud017f6b]
**行圧縮 [#h43c956b]
行圧縮は、
>SQL Server 2005 SP2以降で提供されたvardecimalデータ型と...
(固定長データ型の利用していない領域を削り、可変長データ...
で、圧縮を行う。
**ページ圧縮 [#w84bcaf3]
***圧縮方法 [#y0e95515]
-プレフィックス圧縮
--このプレフィックスは、=列値の先頭から一致するデータパ...
--列毎に、プレフィックスがページのヘッダに移動される。
--列の値は、プレフィックス参照に変更される。
-ディクショナリ圧縮
--このディクショナリは、=列値と完全に一致する値のリスト。
--プレフィックス圧縮の完了後、ディクショナリ圧縮が適用さ...
--ディクショナリ圧縮は、1つの列に制限されない。~
ページ上の任意の場所を対象とすることができる。
***ページと圧縮の方法 [#b27bb774]
-リーフ レベル ページ
--行圧縮
--プレフィックス圧縮
--ディクショナリ圧縮
-リーフ レベル ページ以外のページ
--行圧縮のみが使用される。
*注意事項 [#pf8f3354]
**必要なリソース [#w86ccfda]
***実行時 [#k8bdf4e0]
-CPUリソースを消費して、I/Oコストを下げるというもの。
--CPUコスト: 圧縮・解凍のオーバヘッド
--ストレージ コスト: I/Oとサイズの双方
-従って、何を圧縮すべきかどうかを検討する必要がある。
-参考
--第7回 大規模データ処理におけるCPUとI/Oのバランスをどう...
RDBMSでも大規模データをあきらめないためには|gihyo.jp … ...
http://gihyo.jp/admin/serial/01/rdbms/0007
***圧縮時 [#mb97c2e4]
-圧縮には、インデックス再構築の実行と同等の、ディスクの空...
-オンラインのテーブル(非クラスタ化インデックスのヒープ)...
**適用先 [#zc2fcf44]
***テーブル・インデックス [#gff6a90b]
-システム テーブルには適用されない。
-「クラスタ化インデックス」には、自動的に反映される。
-「非クラスタ化インデックス」には、自動的には反映されない。
***サイズ [#u2f8f3b5]
-圧縮をしても、テーブルやインデックスの最大行サイズは変更...
-最大行サイズが8,060バイトを超える場合、テーブルに圧縮を...
-サイズが原因で特殊なページに格納されたLOBデータは圧縮を...
**運用時の考慮点 [#oa87f4a5]
-テーブル(非クラスタ化インデックスのヒープ)の圧縮設定を...
「非クラスタ化インデックス」を再構築して、行識別子ポイン...
***ページ圧縮のトリガ [#w9bb9773]
-ページ圧縮は、ページがいっぱいになった状態で、~
(INSERT INTO、BULK INSERTを使用して、)~
行追加することによって開始される。
-以降の行追加に対しては、基本的にページ圧縮が適用される。
-既存のテーブルに適用する場合は、直ちに各ページが評価・再...
***圧縮の推定、代替 [#we23d1ad]
-圧縮による削減量の推定には、sp_estimate_data_compression...
-データの断片化が進んでいる場合は、インデックス再構築でも...
***SQL Serverコンポーネントへの影響 [#z891dac9]
-影響の無いもの
--バックアップ・リストア()
--ログ配布(トランザクション・ログのため)
-影響の有るもの
--クエリ プラン~
ページ数とページあたりの行数が異なるためクエリ プランの変...
--一括インポート操作と一括エクスポート操作~
エクスポート時は、非圧縮のデータとなるため、操作に圧縮・...
--レプリケーション~
以下のレプリケーションの範囲に従って作成するスクリプトを...
---テーブルまたはインデックスのパーティション構成をレプリ...
パーティション構成のスクリプトを作成する。
---圧縮設定のレプリケートする。~
圧縮設定のスクリプトを作成する。
*データ圧縮とパーティション [#d32ff101]
「パーティション分割」と「データ圧縮」の併用によって、~
必要な「パーティション」のみ「データ圧縮」するよう選択で...
**圧縮対象のパーティション [#r4d705e7]
下記のような「パーティション」は、~
「データ圧縮」しない(若しくは行圧縮のみ適用)。
-頻繁にアクセスする「パーティション」
-データの変更が頻繁に発生する「パーティション」
**圧縮対象でないパーティション [#d0ef9430]
下記のような「パーティション」は、~
「データ圧縮」する(ページ圧縮を適用)。
-あまりアクセスしない「パーティション」
-確定している過去データの読み取り専用「パーティション」
**圧縮時の注意点 [#x492c175]
「パーティション」を「データ圧縮」する場合は、以下の点に...
***既存の「パーティション」の分割 [#t6ad53c7]
元の「パーティション」のデータ圧縮属性が、~
分割後の双方の「パーティション」に継承される。
***既存の「パーティション」のマージ [#xd0bf8c0]
マージ先「パーティション」のデータ圧縮属性が、~
得られる「パーティション」に継承される。
***既存の「パーティション」の切替え [#k93a19d0]
「パーティション」のデータ圧縮属性が、~
テーブルのデータ圧縮属性と一致する必要がある。
**変更時の考慮点 [#a394736d]
***パーティション or テーブル全体 [#uae2cd19]
既存の「パーティション テーブル」・「パーティション イン...
圧縮設定の変更( = 再構築)に使用できる構文には、次の2つ...
-index_option (Transact-SQL)~
http://msdn.microsoft.com/ja-jp/library/ms186869.aspx
--参照されているパーティションのみ再構築
ALTER { TABLE | INDEX } object_name
REBUILD PARTITION = partition_number WITH (DATA_COMPRESS...
--テーブル全体を再構築(パーティションの既存の圧縮設定を...
ALTER { TABLE | INDEX } object_name
REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE ON
PARTITIONS ({ <partition_number_expression> | <range> })...
***クラスタ化インデックスの削除 [#y9419c87]
-オフライン で「パーティション分割」された「クラスタ化イ...
--「クラスタ化インデックス」の上位レベルだけが削除される...
「パーティション構成」を変更しない限り、ヒープ上のデータ...
--これは、「パーティション構成」を変更するか、明示的に~
ALTER TABLE ... REBUILD ... ステートメントを実行、再構築...
-なお、オンラインで「パーティション分割」された「クラスタ...
--SQL Server によって、自動的に再構築され、データ圧縮属性...
*圧縮の効果 [#of7bba94]
-PRIME3 - PROJECT3~
http://jp.fujitsu.com/solutions/sap/brochures/pdf/prime3p...
*参考 [#s712790e]
-データベース機能
--行の圧縮の実装~
https://msdn.microsoft.com/ja-jp/library/cc280576.aspx
--ページの圧縮の実装~
http://msdn.microsoft.com/ja-jp/library/cc280464.aspx
-データ圧縮:キャパシティ プランニングとベスト プラクティ...
https://technet.microsoft.com/ja-jp/library/dd894051.aspx
----
Tags: [[:データアクセス]], [[:SQL Server]]
ページ名: