3

バックグラウンド

SQL Server 2012 データベースの 1 つが、少なくとも他のデータベースと比較して少し大きくなっています。いくつかのクエリを実行していて、現在、列の 1 つに大量の xml/html データが格納されていることに気付きました。これは、データベースのサイズの主な要因です。

この列のデータは、C# に格納する前に圧縮できることに気付きました。私が確認できたこれらの圧縮方法は問題なく機能することがわかりました。

私のテストでは、C# での 20,000 文字の HTML 文字列の圧縮と解凍には 1000 分の 1 ~ 3 秒かかり、解凍時間は同様でした。

したがって、私の考えでは、C# で xml/html 文字列を圧縮および解凍すると、次のような利点があります。

  1. データベースに転送するデータ量の削減
  2. データベースに必要なストレージの量が削減されました。
  3. データベースから転送するデータ量の削減。

これはすべて、Web サーバーでの圧縮と圧縮解除のために数千分の 1 秒だけ相殺されるだけです。

質問:

この戦略を採用する際に注意すべき落とし穴はありますか?

4

2 に答える 2

1

SQL Server 2012 を使用しているため、問題のテーブルで行レベルまたはページレベルの圧縮を有効にすることができます。これにより透過的な圧縮が提供され、ストレージ システムのニーズではなく、クライアントのニーズに集中できるようになります。

Microsoft は圧縮に関する優れたドキュメントをhttp://technet.microsoft.com/en-us/library/cc280449.aspxで公開しています。

ALTER TABLE <table_name> 
REBUILD 
WITH (DATA_COMPRESSION = PAGE | ROW)

圧縮のかなり重大な利点は、SQL Server でのメモリ使用量の削減です。データベース内のデータ ページを圧縮しても、ページはメモリ内で圧縮されたままになります。

Glenn Berry は、http://www.sqlskills.com/blogs/glenn/estimating-data-compression- Savings-in-sql-server-2012/ で、圧縮の利点の見積もりに関する優れた記事を書いています。

于 2013-09-23T14:12:52.583 に答える