V SQL Server 2008 máte možnost použít FILESTREAM
pro ukládání velkých binárních dat. V tomto případě budou data dostupná v dotazech, ale fyzicky uložena v souborovém systému.
Společnost Microsoft zveřejnila technický článek k SQL Server
který obsahuje užitečné informace o tom, jak a kdy používat FILESTREAM
. Na 8. stránce srovnávací tabulka ukazuje, že FILESTREAM má výhodu přes objekty BLOB uložené v databázi pokud jsou uložená data větší než 1 MB .
POZNÁMKA FILESTREAM není k dispozici v SQL Server 2005! (A SQL Server 2005 není déle podporované společností Microsoft - kromě rozšířené podpory)
Několik dalších článků k přečtení
Některé srovnávací grafy si můžete prohlédnout na blogu SQLSkills o jeho výkonu.
Výzkum společnosti Microsoft také zveřejnil Technický článek:To BLOB or Not To BLOB o souborových tocích a objektech BLOBS.
Můžete to zkusit, ale jako vždy musíte spustit nějaký test specifický pro prostředí, abyste si byli jisti, že toto řešení funguje nebo ne. Pokud se jedná o produkt na trhu, je dobré implementovat podporu FILESTREAM jako funkci opt-in nebo opt-out.
Jen okrajová poznámka
NVARCHAR
je dvakrát větší než VARBINARY
protože SQL Server ukládá každý znak na 2 bajty v unicode (NCHAR
, NVARCHAR
, atd.) sloupce.