4

(XMLデータ)に多くのテキストデータを格納する列があります。 1行あたり約8,000文字、1分あたり約100〜500行です。SQL Serverでの列レベルの圧縮

それほど多くのデータが意味するのは、私がかなり積極的に列をパージする必要があるということです。 (私の会社のSANにSQL Serverをホストする必要があるので、ストレージスペースはかなり高価です。)このデータを圧縮する方法を見つけることができれば、それをもっと長く保つことができます。

私はまた、SQL Server 2005の

両方のためのツールSQLCompress.NETを見ているSQL 2005

using CLR Integration to compress BLOBsこの記事のようなものを見てきましたが、彼らは私が欲しい正確に何を言っているように見えます。 1つの列が格納されている間、その列のデータを圧縮します。

しかし、このツールは放棄されています(2008年以降は更新されていません)。問題を引き起こす可能性があると聞いたこと以外は、CLR統合についてはよく分かりません。 また、これらのソリューションはSQL Server 2005用です。

ここに私の質問があります。私はSQL Server 2008 R2を使用しています。これらのSQL Server 2005ソリューションのどちらも私にとってうまくいくのでしょうか?

データを圧縮するために使用できる別のソリューションがありますか?

注:行圧縮とページの圧縮は、私が必要なものと助けにはなりません行圧縮は、可変長フィールドに固定長データを記憶しているし、ページ圧縮は、冗長なのインスタンスを減らし(少なくとも私の知る限り見ることができます。)データ。これらはいずれも大きなテキストブロックでは役に立ちません。

注II:このquestionを見ましたが、答えは行とページの圧縮またはFILESTREAMを使用しています。私は自分のデータベースをミラーリングする能力が失われているので、FILESTREAMを使用したくありません。

+0

このartcleを参照してください?一部のC#アプリケーションですか? –

+0

@ChrisShain - 私はそれに書き込むためにC#アプリケーション(IISでホストされているWCF/NServiceBus)を使用しています。私はSSMSを使ってそれを読む。 – Vaccano

+1

現在の2つの答えを考慮すると、誰かが「問題を引き起こす可能性があると聞いている以外は、CLRインテグレーションについてよく知らない」とコメントできますか?私は最近CLRの統合を自分自身で使っています(それについて多くのことを知らずに、私は認めます)、問題はありませんでした。 – bfavaretto

答えて

0

私は、クライアントライブラリを使用してSQL Serverに格納する前にデータを圧縮し解凍するか、XMLの特定の要素または属性でクエリを実行するかどうかを判断することができますそれらを別々の列または正規化された行に格納します(ネストされた要素の場合は特に、大規模なXMLテキスト列のクエリは、遅いです)。

+0

私はXMLの内部を照会する必要はなく、SSMSクエリでXML全体を取得するだけです。 (まるで通常のテキストデータであるかのように)私はむしろクライアント側で圧縮しません。なぜなら、SSMSを使ってデータを見ることができないからです。列レベルの圧縮はCLRの統合を悪い考えですか?これはSQL Serverの珍しい領域ですか? – Vaccano

+0

クライアントが圧縮および解凍する場合。 SQL Serverの列圧縮と同じくらいうまくいくわけではありませんが、私が得ることができるものを取り上げます。 – Vaccano

0

filestreamを使用してXMLドキュメントを保存し、NTFSを使用して圧縮することができます。

は、あなたがにデータを書き込む(やからデータを読み込む)SQL Serverのために何を使用している

Using Filestream in SQL2008

+1

悲しいことに、FileStreamを使用すると、データベースをミラーリングする能力が失われます。それは私のDBAが必要とする機能です。それ以外の場合は、おそらく私はこのソリューションを選択します。 – Vaccano

関連する問題