Existuje opravdu dobrý dokument od společnosti Microsoft Research s názvem To Blob or Not To Blob.
Jejich závěr po velkém počtu výkonnostních testů a analýz je tento:
-
pokud mají vaše obrázky nebo dokument obvykle velikost menší než 256 kB, je jejich ukládání do sloupce VARBINARY v databázi efektivnější
-
pokud jsou vaše obrázky nebo dokument obvykle větší než 1 MB, jejich ukládání do souborového systému je efektivnější (a s atributem FILESTREAM SQL Server 2008 jsou stále pod transakční kontrolou a jsou součástí databáze)
-
mezi těmito dvěma je to trochu házení v závislosti na vašem použití
Pokud se rozhodnete umístit své obrázky do tabulky SQL Serveru, důrazně doporučuji použít samostatnou tabulku pro ukládání těchto obrázků - neukládejte fotografii zaměstnance do tabulky zaměstnanců - mějte je v samostatné tabulce. Tímto způsobem může tabulka Zaměstnanec zůstat štíhlá, průměrná a velmi efektivní, za předpokladu, že nemusíte vždy v rámci svých dotazů vybírat i fotografii zaměstnance.
Pokud jde o skupiny souborů, podívejte se na úvod do Files and Filegroup Architecture. V zásadě byste buď hned od začátku vytvořili svou databázi se samostatnou skupinou souborů pro velké datové struktury, nebo přidali další skupinu souborů později. Říkejme tomu „LARGE_DATA“.
Nyní, kdykoli chcete vytvořit novou tabulku, která potřebuje uložit sloupce VARCHAR(MAX) nebo VARBINARY(MAX), můžete zadat tuto skupinu souborů pro velká data:
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
Podívejte se na úvod MSDN o souborových skupinách a pohrajte si s ním!