2009-07-14 4 views
8

현재 우리는 수천 개의 Microsoft Word 파일, Excel 파일, PDF, 이미지 등을 폴더/하위 폴더에 저장합니다. 이는 정기적으로 응용 프로그램에서 생성되며 해당 응용 프로그램 내에서 언제든지 액세스 할 수 있습니다. 업그레이드를 시도하면서 이제는 SQL Server 2005에 이러한 모든 문서를 저장하는 방법을 모색 중입니다. 이 이유는 문서를 압축하고 추가 필드를 추가하여 해당 문서에 대한 정보를 저장하고 필요한 경우 색인을 적용하는 것입니다.파일을 SQL Server에 저장하거나 파일 서버에 보관 하시겠습니까?

필자는 SQL Server를 파일 서버에 보관하는 대신 문서 저장소로 사용하는 것과 장시간의 경험을 통해 얻은 장단점에 대해 생각해 봅니다.

우리는이 작업을 수행하기 위해 C# 및 Windows Workflow를 사용할 것입니다.

의견을 보내 주셔서 감사합니다.

편집


은 얼마나 큰 파일은? 크기 100,000 = 200,000 사이

(평균. 70킬로바이트)

얼마나 될 것인가?

현재 Word/Excel과 PDF에서부터 310 만 개의 파일로 구성되어 있으며 하루에 2,600 개까지 커질 수 있습니다. (성장은 시간이 지남에 따라 증가 할 것입니다.)

몇 번 읽습니까?

이전 시스템/응용 프로그램으로는이를 해결하기가 어렵 기 때문에이 수치를 정하기는 어렵습니다.


또한 또 다른 유용한 링크는 비슷한 게시물 두 방법의 장단점을 커버에 지적했다.

Files Stored on DB vs FileSystem - Pros and Cons

+0

파일의 크기는 어느 정도입니까? 몇 명입니까? 몇 번의 읽기가 있습니까? 이와 같은 결정에는 항상 측정 항목이 있어야합니다. – Ricardo

+1

가능한 복제본 ... http://stackoverflow.com/questions/616762/what-is-the-best-way-to-associate-a-file-with-piece-of-data –

+0

확실히 유사 광산을 만들 때 나는 자리를 잡지 않았다. 좋은 찬반 양론. – kevchadders

답변

8

나는 둘 다 가지고있을 것이다.

파일을 고유 한 이름으로 바꾸면 관리하기가 쉬우 며 데이터베이스 (파일 이름, 내용 유형, 파일 시스템의 위치, 크기, 설명 등)에 모든 메타 데이터가 보관됩니다. 따라서 파일은 데이터베이스를 통해 (간접적으로) 액세스됩니다.

장점 :

  • 파일을 처리하기 쉬운; 당신은 혼합에있는 몇몇 드라이브를 가져올 수있다
  • 데이타베이스는 당신이 찾을 수있는 파일 설명을 포함하여 어떤 메타 정보든지 유지할 ​​수있다.
  • 파일에 트랙에 액세스 및 기타 통계 정보
  • 다양한 패러다임을 사용하여 파일을 정렬 유지 : 트리 (디렉토리 구조), 태그, 당신은 또한 드라이브에 압축을 할 수 있습니다

을 검색하거나 상황. 백업 및 속도를 위해 RAID를 사용할 수 있습니다.

1

우리는 얘기 문서의 종류는?

SQL Server에 문서를 저장하면 문서를 다른 테이블과 관련시킬 수 있고 전체 텍스트 인덱싱과 같은 기술을 사용하고 퍼지 검색과 같은 작업을 수행 할 수 있으므로 유용 할 수 있습니다.

단점은 문서 백업을 만드는 것이 더 어려울 수 있다는 것입니다. 또한 압축은 NTFS 압축 또는 다른 기술을 사용하여 가능합니다.

+0

그들은 Mircosoft Word Docments가 될 것입니다. – kevchadders

+0

sry ... 또한 Excel 및 PDF 파일. – kevchadders

+0

또한 사진을 JPEG 및 BMP 파일로 저장합니다. – JamesM

1

이러한 문서는 텍스트 기반이며 SQL Server의 전체 텍스트 검색을 사용하여이 문서를 검색 할 계획입니까? 그렇지 않은 경우 데이터베이스에 이러한 문서를 저장하는 데 어떤 이점도 나타나지 않습니다. 물론 경로 정보를 포함한 문서와 관련된 메타 데이터를 데이터베이스에 저장할 수 있습니다.

+0

우리는 전체 텍스트 검색뿐만 아니라 추가 필드를 추가하여 해당 문서에 메타 데이터를 저장합니다. – kevchadders

1

DB에서 문서를 스트로크하는 것의 큰 장점은 앱의 액세스 제어를 통해 모든 작업을 수행 할 수 있으므로 보안 액세스를 제어하는 ​​것이 훨씬 쉬워집니다. 파일 서버에 파일을 저장하려면 직접 액세스하지 못하도록 파일 및 폴더 수준에서 액세스 권한을 처리해야합니다. 또한 DB에서 단일 지점 백업을 위해 DB를 만들면 더 쉽게 전체 복사본을 만들거나 필요에 따라 이동할 수 있습니다.

12

SQL Server 2008로 완전히 업그레이드하면 문서를 테이블의 열로 표시 할 수있는 새로운 FILESTREAM 기능을 사용할 수 있지만 공유의 파일로 상주 할 수 있습니다 프로그램 (예 : Word)에서 직접 액세스 할 수 있습니다. 문서 크기에 엄지 손가락의

+0

니스, 그 능력에 대해 몰랐다. – kenny

17

규칙은 다음과 같습니다

size < 256 kb: store in db 
265 kb < size < 1 MB: test for your load 
size > 1 Mb: store on file system 

편집 : 엄지 손가락의 규칙은 또한 SQL 서버 2008

+2

+1 실용적인 접근. –

1

보다는 사용자 지정 DMS (문서 관리 시스템)를 서면으로 FILESTREAM 저장에 적용, WSS/SharePoint를 구매하거나 WSS/SharePoint를 사용하는 것이 좋습니다. 저장소, 인덱싱, 메타 데이터 등의 모든 세세한 세부 정보를 처리하고 사용자 지정 기능을 위에 구축 할 수 있습니다.

+0

Sharepoint가 고려되었지만 비용이 너무 많이 걸린 것으로 간주되었습니다! : – kevchadders

+0

어느 비용이 들지 요? 서버 당 무료입니다 –

+0

Windows SharePoint Services (WSS)는 많은 제한이있는 무료 버전입니다. 내가 사용했던 라이선스 버전은 Microsoft Office SharePoint Server (MOSS)입니다. 혼란에 사과드립니다. – kevchadders

관련 문제