W SQL Server 2008 możesz użyć FILESTREAM
do przechowywania dużych danych binarnych. W takim przypadku dane będą dostępne w zapytaniach, ale fizycznie przechowywane w systemie plików.
Microsoft opublikował Artykuł techniczny dotyczący SQL Server
który zawiera przydatne informacje o tym, jak i kiedy używać FILESTREAM
. Na 8. stronie wykres porównawczy pokazuje, że FILESTREAM ma przewagę ponad BLOBami przechowywanymi w bazie danych jeśli przechowywane dane są większe niż 1MB .
UWAGA FILESTREAM nie jest dostępny w SQL Server 2005! (A SQL Server 2005 nie jest już obsługiwany przez Microsoft - z wyjątkiem rozszerzonego wsparcia)
Więcej artykułów do przeczytania
Niektóre wykresy porównawcze można zobaczyć na blogu SQLSkills o jego wydajności.
Również Microsoft Research opublikował Artykuł techniczny:Do BLOB czy nie do BLOB o strumieniach plików i BLOBach.
Możesz spróbować, ale jak zwykle musisz przeprowadzić test specyficzny dla środowiska, aby upewnić się, że to rozwiązanie działa, czy nie. Jeśli jest to produkt na rynku, dobrym pomysłem jest zaimplementowanie obsługi FILESTREAM jako funkcji opt-in lub opt-out.
Tylko uwaga
NVARCHAR
jest dwa razy większy niż VARBINARY
ponieważ SQL Server przechowuje każdy znak na 2 bajtach w Unicode (NCHAR
, NVARCHAR
itp.) kolumny.