В SQL Server 2008 имате опцията да използвате FILESTREAM
за съхраняване на големи двоични данни. В този случай данните ще бъдат налични в заявки, но физически съхранени във файловата система.
Microsoft публикува техническа статия за SQL Server
който съдържа полезна информация за това как и кога да използвате FILESTREAM
. На 8-ма страница сравнителната диаграма показва, че FILESTREAM има предимство върху BLOB, съхранени в база данни, ако съхранените данни са по-големи от 1MB .
ЗАБЕЛЕЖКА FILESTREAM не е наличен в SQL Server 2005! (И SQL Server 2005 не е вече се поддържа от Microsoft - с изключение на разширената поддръжка)
Още няколко статии за четене
Можете да видите някои сравнителни диаграми в блога на SQLSkills за неговото представяне.
Също така Microsoft Research публикува техническа статия:За BLOB или не за BLOB относно файловите потоци и BLOBS.
Можете да опитате, но както винаги, трябва да изпълните тест за специфична среда, за да сте сигурни, че това решение работи или не. Ако това е продукт на пазара, добра идея е да внедрите поддръжката на FILESTREAM като функция за включване или изключване.
Само странична бележка
NVARCHAR
е два пъти по-голям от VARBINARY
защото SQL Server съхранява всеки знак на 2 байта в unicode (NCHAR
, NVARCHAR
, и т.н.) колони.