2009-04-15 8 views
0

クイックqは、これまでのところ私の(不足している)結果を愚かなものにすることができます。データベースからのデータを圧縮

私はデータベースを持っています。このデータベースには、いくつかのデータを含むテーブルがあります。データは大きなBLOBですが、圧縮できません(自分のコントロールできない理由で)。

私はこのデータベースと会話するアプリケーションを持っています。私は本当に転送中にデータが圧縮されていることを確認できるようにしたいと思います。私はそれを理解したよう

、データベース・プロバイダは、このような場合は圧縮など

扱うのでしょうか?一般的な設定、つまり圧縮を有効にするSQL Serverなどの設定はありますか?

答えて

2

SQL Serverの場合、私はthis "connect" entryですが、TDSは現在圧縮されているとは思われません。あなたは(それほど好きではないが)SQL-CLRを使って.NETコードで圧縮することはできますが、オーバーヘッドが大きくなる可能性があります。

この場合は(質問の)オプションではありませんが、通常はBLOBを取得する方法で保存することをお勧めします。したがって、それらを圧縮したい場合は、それらを圧縮して保管してください。 SQLはバイナリを操作するための良いツールではありません; --pこのような戦略は、ベンダ固有の機能を使用していないことを意味します。つまり、不透明なBLOBを格納する機能だけです。

+0

残念ながら、私は基礎となるデータを変更できません。したがって、SQL-CLRソリューションに関しては、.NETデータ型に圧縮するGetMyData sprocを作成します。 – Duncan

0

SQL Server 2008は、バックアップの圧縮をネイティブにサポートするSQL Serverの最初のバージョンです。 2008年以前には、サードパーティ製の製品を使用する必要があります。

1

データベースアクセス層が圧縮を提供しない場合、データベースサーバーとアプリケーションホストの間にVPNリンクを設定できます。最も重要なVPNソリューションは、転送中のデータを圧縮します。 OpenVPNは、トンネルをすばやく作成するための簡単で簡単な設定ソリューションです。データは転送中に圧縮されます。おそらくネイティブの圧縮ほど効率的ではありませんが、可能な解決策です。そして、あなたは無料で暗号化されます:)。