假设客户和文档的标准用例,客户可以拥有许多文档。还假设每个客户都会有很多大文件(从几千字节到几千元)。
DocumentStore
表必须至少有......
DocumentId INT IDENTITY PRIMARY KEY,
Stream VARBINARY(MAX) FILESTREAM NOT NULL,
DocGuid UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL
UNIQUE DEFAULT NEWID
相同表格中的CustomerId, FileExtension, FileSize, Hash, CreatedBy, CreatedDate, ...
goitf字段或不同表格中的优缺点是什么(引用相同的{{ 1}},当然)?
这个问题主要源于查询列时性能和分页等的不确定性。 (假设有一个关于CustomerId的附加索引,但可能没有其他索引。)
答案 0 :(得分:0)
FILESTREAM列位于单独的文件组中,因此没有性能和操作优势。
当您为FILESTREAM列使用单独的表时,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/
即使不是常规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