2016-12-14 12 views
0

顧客が多くのドキュメントを持つことができる、顧客とドキュメントの標準的なユースケースを想定します。また、各顧客に関連する多数の大きなファイル(数キロバイトから数カ所のギグまで)が存在すると仮定します。SQL Serverでは、FILESTREAMのメタデータを別のテーブルに配置する必要がありますか?

DocumentStoreテーブルは、少なくとも、必要があります... 同じテーブル又は異なる表のようCustomerId, FileExtension, FileSize, Hash, CreatedBy, CreatedDate, ... goitfなどのフィールドの長所と短所は

DocumentId INT IDENTITY PRIMARY KEY, 
Stream VARBINARY(MAX) FILESTREAM NOT NULL, 
DocGuid UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL 
    UNIQUE DEFAULT NEWID 

何である(参照してもちろん同じDocumentIdに)?

この質問は、主に、クエリを実行するときのパフォーマンスやページングなどの不確定性に起因しています。 (CustomerIdの上に追加のインデックス、おそらくありません他の人を想定。)

答えて

0
  1. FILESTREAM列が別々のファイルグループにあるので、何のパフォーマンスや操作上の利点はありません。 FILESTREAMのベストプラクティスの

  2. なしあなたがFILESTREAM列

    https://msdn.microsoft.com/library/hh461480 https://blogs.msdn.microsoft.com/blogdoezequiel/2011/02/11/best-practices-on-filestream-implementations/ https://www.mssqltips.com/sqlservertip/1875/best-practices-when-using-filestream-feature-of-sql-server/

  3. に別々のテーブルを使用する場合であっても、それは通常のVARBINARYカラム

    のためのケースではありませんいくつかのパフォーマンスを得ることを言及していません

    What is the benefit of having varbinary field in a separate 1-1 table? SQL Server varbinary(max) and varchar(max) data in a separate table

  4. 私は自分でテストしましたが、私は同じ実行計画と同じ統計を持っていました。 enter image description here

関連する問題