어떤 스토리지 위치, SQL Server 또는 파일 시스템으로 인해 TIFF 이미지를 저장하는 데 더 나은 성능을 제공합니까?

StackOverflow https://stackoverflow.com/questions/1234551

문제

우리 시스템의 크기가 ~ 3k의 Tiff 이미지를 저장해야합니다. 우리는 주어진 시간에 ~ 300 개의 이미지를 받고 빠르게 처리해야합니다. ~ 100,000 개의 이미지가 수신되면 이미지가 시스템에서 다른 보관 시스템으로 전송되거나 퍼지는 것입니다.

이미지 파일의 초기 저장과 관련하여 최고의 성능을 찾고 있습니다. 아카이브를 위해 이미지를 전송하는 작업은 성능 저하가 적습니다.

어떤 스토리지 위치, SQL Server 또는 파일 시스템으로 인해 TIFF 이미지를 저장하는 데 더 나은 성능을 제공합니까?

알아야 할 다른 고려 사항이나 Gotchas가 있습니까?

도움이 되었습니까?

해결책

파일 시스템에 이미지를 저장하면 더 나은 성능을 제공합니다. TIFF 이미지 첨부 파일에 대한 관련 데이터베이스 테이블에 항목을 넣으면 파일 시스템에서 이미지의 경로를 얻으려면이를 사용하십시오.

웹 서버 (관련된 경우)에서 이미지를 호스팅하여 성능을 향상시키고 클라이언트 애플리케이션 (관련이있는 경우)을 대신 직접 검색하도록 할 수 있습니다.

다른 팁

내 경험상 SQL Server는 블로브를 데이터베이스에 저장하는 데 괜찮 았습니다. 쿼리, 정규화 등과 관련된 모범 사례를 따르는 한 잘 작동하는 것을 발견했습니다.

어떤 이유로 든 개인적으로 데이터베이스에 거대한 PDF 및 DOC 및 JPG 파일을 저장하고 싶지는 않지만 이것이 바로 Microsoft SharePoint가하는 일입니다.

나는 확실히 내 DB에 얼룩을 넣는 것을 고려할 것입니다.

SQL Server 2008 버전에는 Filestream이라는 새로운 기능이 있습니다. 그들의 문서의 일부에도 섹션이 있습니다 모범 사례, Blob 물체가 일반적으로 1MB 인 경우 MS 사람들이 Filestream이 작용해야한다고 말합니다.

MSDN 페이지는 다음과 같습니다.

FILESTREAM을 사용하는 경우 다음 조건이 참이면 FILESTREAM을 사용하는 것을 고려해야합니다. - 저장되는 개체는 평균적으로 1MB보다 큽니다. 작은 물체의 경우 데이터베이스에 Varbinary (Max) 블로브를 저장하면 종종 더 나은 스트리밍 성능을 제공합니다.

따라서 3kb TIFF로 SQL Server 2005 테이블에 Varbinary (Max) 필드 안에 멋지게 저장할 수 있습니다. SQL Server의 8K 페이지 크기보다 훨씬 작기 때문에 잘 맞습니다!

또한 블로브를 자신의 테이블에 넣고 "기본"데이터 행을 참조하는 것을 고려할 수도 있습니다. 이렇게하면 기본 데이터 (Ints, Varchars 등) 만 쿼리 해야하는 경우 다른 물건과 섞여있는 블로브에 의해 쿼리가 쇠약 해지지 않습니다.

마크

INPE/브라질의 위성 카탈로그 시스템은 파일 시스템에 저장된 TIFF 이미지를 참조합니다. 그러나 이미지는 조금 더 큽니다 - +/- 100MB. 파일을 브라우저에 표시 해야하는 경우 PHP 코드는 디스크에서 TIFF 컨텐츠를 읽고 그립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top