この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 173|答える: 0

[ヒント] SQL Serverデータベーステーブルの行圧縮およびページ圧縮

[リンクをコピー]
掲載地 2026/01/09 11:20:06 | | | |
要件:SQL Serverデータベースには、非常に大きなディスク容量、場合によっては数百GBのテーブル(例:ログテーブル、リクエストログテーブル)があります。テーブル空間の使用量をどう減らすか? データ圧縮(スペース節約)は、非常に反復的なテキスト(例:HTML、JSON、ログ)に対して有効化できます。

ROW圧縮

圧縮はデータの物理的な記憶は変わりますが、データの論理構造は変わりません。 ライン圧縮の過程:

各列のデータ型を特定し、それを可変長に変換します
最後に、ストレージ容量の要求量は実際の需要に還元されます
圧縮後、各ページに格納されるデータ量が増加します
圧縮後、メタデータの量を減らしましょう
例えば、列のデータ型がsmallintの場合、システムはデフォルトで2バイトを割り当てます
しかし実際には1バイトのスペースしか使用できず、テーブル上で圧縮が有効であれば、必要に応じて割り当てることができます

ページ圧縮

ページ圧縮は行圧縮を強化するための追加操作を行います
主な操作:行圧縮、プレフィックス圧縮、辞書圧縮

CPU消費量:ページ圧縮>行圧縮

試験

新しいUsers1とUsers2のテーブルを作成し、どちらも10万件のデータを挿入します。SQLスクリプトは以下の通りです:
テーブルスペース占有率(すべて3.27 MB)を表示するには、以下のコマンドが使われます。
以下に示すように:



Users2テーブルの圧縮状態を見るためのコマンドは以下の通りです:
以下に示すように:



sp_estimate_data_compression_savings行、ページ、カラムストア、カラムストアアーカイブ、XML圧縮のテーブルやパーティションを有効にした場合に得られる節約額を見積もりましょう。 コマンドは以下の通りです:
出力は以下の通りです:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
ユーザー2 DBO 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB 現在の圧縮設定でインデックスは≈ 3.29 MBを占めます
size_with_requested_compression_setting (KB) 1296 KB リクエストした新しい圧縮方法(PAGEやROWなど)を有効にすると推定≈1.27 MB
ページ圧縮を実行するコマンドは以下の通りです:
効果の比較:Users2のテーブルは圧縮前3.27MB、圧縮後1.23MBです、下図に示されているように:



その可視化は以下の通りです:



参考:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。




先の:データベースソフト削除(tombod)フィールド一意性の問題
次に:Windows Defender Credential Guardは保存した認証情報の使用を許可していません
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com