SQL 서버에 파일 저장
오래된 질문이지만 SQL Server 2012를 사용하면 파일을 데이터베이스에 저장할 수 있습니까? 아니면 파일 시스템에 파일을 보관하고 데이터베이스에 파일을 참조해야 합니까?
요즘 데이터베이스에 저장하는 것이 허용되는 것으로 간주된다면 가장 효과적인 방법은 무엇입니까?
저는 암호화를 적용할 계획이기 때문에 처리 속도가 빠르지 않은 것에 감사드립니다.
마이크로소프트 리서치사의 아주 좋은 논문이 있습니다. To Blob or Not To Blob.
수많은 성능 테스트 및 분석을 통해 얻은 결론은 다음과 같습니다.
사진이나 문서의 크기가 일반적으로 256K 미만이면 데이터베이스 VARBINARY 열에 저장하는 것이 더 효율적입니다.
사진이나 문서의 크기가 일반적으로 1MB 이상이면 파일 시스템에 저장하는 것이 더 효율적입니다(SQL Server 2008의 FILESTREAM 속성을 사용해도 여전히 트랜잭션 제어 및 데이터베이스의 일부로 유지됨).
그 둘 사이에, 당신의 용도에 따라 약간의 토스업입니다.
사진을 SQL Server 테이블에 저장하기로 결정한 경우 사진을 저장하기 위해 별도의 테이블을 사용하는 것이 좋습니다. 직원 테이블에 직원 사진을 저장하지 말고 별도의 테이블에 보관하십시오.이렇게 하면 쿼리의 일부로 항상 직원 사진을 선택할 필요가 없다고 가정할 때 직원 테이블을 얇고 평균적이며 매우 효율적으로 유지할 수 있습니다.
파일 그룹에 대해서는 파일 및 파일 그룹 아키텍처에서 소개를 확인하십시오.기본적으로 대용량 데이터 구조에 대해 별도의 파일 그룹으로 데이터베이스를 만들거나 나중에 파일 그룹을 추가합니다."LARGE_DATA"라고 부릅니다.
이제 VARCHAR(MAX) 또는 VARBINARY(MAX) 열을 저장해야 하는 테이블을 새로 만들 때마다 대용량 데이터에 대해 다음 파일 그룹을 지정할 수 있습니다.
CREATE TABLE dbo.YourTable
(....... define the fields here ......)
ON Data -- the basic "Data" filegroup for the regular data
TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data
파일 그룹에서 MSDN 인트로를 확인하고 가지고 놀아보세요!
아직도 간단한 답은 없습니다.시나리오에 따라 다릅니다. MSDN에는 결정하는 데 도움이 되는 문서가 있습니다.
여기에서는 다른 옵션에 대해 설명합니다.파일 시스템에 직접 저장하거나 BLOB에 저장하는 대신 SQL Server 2012의 FileStream 또는 File Table을 사용할 수 있습니다.File Table의 장점은 쉽게 이해할 수 있는 것 같습니다(그러나 저는 그들과 직접적인 경험이 없습니다).
그 기사는 확실히 읽을 가치가 있습니다.
FILESTREAM에서 읽어보실 수 있습니다.다음은 결정하는 데 도움이 될 문서의 몇 가지 정보입니다.
다음 조건이 참이면 FILESTREAM 사용을 고려해야 합니다.
- 저장 중인 개체는 평균적으로 1MB보다 큽니다.
- 빠른 읽기 액세스가 중요합니다.
- 애플리케이션 로직에 중간 계층을 사용하는 애플리케이션을 개발하고 있습니다.
크기가 작은 개체의 경우 데이터베이스에 varbinary(최대) BLOB를 저장하면 스트리밍 성능이 향상되는 경우가 많습니다.
언급URL : https://stackoverflow.com/questions/13420305/storing-files-in-sql-server
'programing' 카테고리의 다른 글
vuex 상태가 변경 시 UI를 업데이트하지 않음 (0) | 2023.07.10 |
---|---|
git ignore.env 파일이 작동하지 않습니다. (0) | 2023.07.10 |
조건부 값을 사용한 dplyrutation (0) | 2023.07.10 |
데이터 프레임의 구분 기호에서 열 분할 (0) | 2023.07.10 |
data.frame 열을 벡터로 변환하시겠습니까? (0) | 2023.07.10 |