2016-12-14 25 views
0

고객이 많은 문서를 가질 수있는 고객 및 문서의 표준 사용 사례를 가정합니다. 또한 각 고객과 관련된 많은 수의 큰 파일 (몇 킬로바이트부터 몇 권의 공연장까지)이있을 것이라고 가정합니다.SQL Server에서 별도의 테이블에 FILESTREAM의 메타 데이터를 넣어야합니까?

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 또는 다른 테이블과 필드의 단점 (무엇 물론 DocumentId으로)?

이 질문은 주로 열을 쿼리 할 때 성능 및 페이징 등의 불확실성에 기인합니다. (고객 ID에 추가 인덱스를 가정 없지만, 아마 어떤 다른 사람.)

답변

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