문제

어제 파일을 저장 해야하는 방법에 대한 질문을했습니다. 일부 연구 후에 나는 데이터베이스에 "파일"을 저장하는 데 전했습니다.

FileStream을 사용하여 파일 저장과 데이터베이스 자체에 파일을 저장하는 것의 차이점을 확인했습니다.

각각은 장점과 단점이 있습니다. 내 연구를 도와주기 위해이 사이트가 많은 도움이되었습니다.http://www.codeproject.com/kb/database/sqlfilestream.aspx

따라서 기본적으로 파일이 1MB보다 큰 경우 FileStream을 사용하여 파일을 저장하는 것이 더 좋습니다.

그러나 나는 파일 스트리밍과 관련된 또 다른 문제를 발견했습니다. 데이터베이스에서 레코드를 삭제하면 파일이 여전히 파일 시스템에 존재합니다.

그러므로 나는 너희들의 의견이 필요하다. 무엇을 사용해야합니까? varbinary를 사용하여 데이터베이스의 파일을 파일 또는 저장합니까?

Grtz, M.

도움이 되었습니까?

해결책

파일 시스템의 데이터는 데이터베이스에서 데이터를 삭제 한 후 곧 제거되지만 별도의 시스템 배경 스레드에서 수행되므로 기본적으로 쓰레기 수집기가 다시 실행될 때까지 파일 시스템에 남아있을 수 있습니다. 그러나 Filestream API (즉, TSQL 또는 스트리밍)를 통해 액세스 한 모든 결과는 파일 시스템 데이터가 여전히 디스크에 상주하는지 여부에 관계없이 제거 된 내용에 액세스하지 않도록 보장됩니다 (산성은 Filestream으로 보장됩니다).

다른 팁

FILESTREAMS를 사용하십시오.

데이터베이스는 관계형 데이터를 저장하도록 설계되었으며 파일 시스템은 파일을 저장하도록 설계되었습니다.

Microsoft 직원으로부터 SQL Server 2000/2005 (기억할 수 없음)에 큰 블로브를 저장하는 것은 좋은 생각이 아니라고 자주 들었습니다.

또한 백업을 고려하십시오 : DatabaseFile은 하나의 파일입니다 (편집 : 구성하는 경우). FILESTREAMS를 사용하는 경우 개별 파일을 백업 할 수 있습니다.

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