現在、.NETアプリケーションは、SQL Serverデータベースに永続化するメモリ内にXMLデータを構築します。 XElementオブジェクトはToString()を使用して文字列に変換され、DBのvarchar(MAX)列に格納されます。検証は必要ないため、SQLではどの段階でもXMLをクエリする必要がないため、SQL XMLデータ型を使用する必要はありません。SQL Serverデータベースに格納するXMLの.NET圧縮
この実装は正常に動作しますが、XMLを圧縮する前にXMLを圧縮し、取り出した後に解凍してデータベースのサイズを縮小したいと考えています。誰もXElementオブジェクトを圧縮するためのサンプルコードを持っていますか(また、解凍も素晴らしいでしょう)?また、この圧縮を完全に利用できるように、データベース列のデータ型にどのような変更を加える必要がありますか?
私はSQL Server 2005のXMLデータ型を再度調査しました。このデータベリファイのオーバーヘッドは、使用するには高すぎます。また、XMLを幾分圧縮しますが、.NET DeflateStreamクラスほどの圧縮はありません。
DeflateStreamクラスは、使用するXMLをディスクに書き込んだ後、新しいファイルとして保存することでテストされています。結果は素晴らしいです、16kbのファイルは3kbのファイルになりますので、これをメモリ上で動作させ、その結果のデータをDBに保存することはできません。誰も圧縮を行うためのサンプルコードがありますか、varbah(MAX)columをvarbinaryに変更する必要がありますか?事前
Xmlの圧縮もパフォーマンスには良いアイデアです。これにより、多くのXmlがデータベースに書き込まれたときにボトルネックになっていたアプリケーションのパフォーマンスが大幅に向上しました。 – Justin