1

myTableとしてフラグが立てられたフィールドを持つテーブル ( ) がありFilestreamます。このサーバーでは、それが唯一のファイルストリームであり、ファイルストリームの場所に保存されます。F:\foo

SELECT COUNT(1) FROM myTable結果は 37,314 になりますが、のフォルダー プロパティF:\fooは 36,358 ファイルです。すべての行myTableの Filestream 列にデータがありますが、これは 956 個が完全に重複していたことを意味しますか?

もしそうなら、SQL Serverは何が重複していて何が重複していないかをどのように判断しますか(それは完全なバイナリ比較ですか?ブロック差分レベルでデータを保存する価値があるとは思わないので)? ファイルストリームの重複レコードを統合するSQL Serverに関する情報が見つからないようです。

さらに、同じレコードの多くを再度保存すると (カウントが 45,000 になると)、合計ファイル数がF:\foo増加します。これは、重複チェック (そのようなものがある場合) が完全ではないことを示しています。

SQL Server は、ファイル ストリーム内の同様のファイルをまとめて統合しますか? SQL でファイル ストリーム ファイル グループを再スキャンし、さらに重複を探して既存の領域を統合するために実行できるストアド プロシージャはありますか?

問題のサーバーは SQL Server 2012 Enterprise with SP1 ですが、UAT SQL Server 2012 Standard Edition with SP1 ボックスでも発生しました。

4

0 に答える 0