Dans SQL Server 2008, vous avez la possibilité d'utiliser FILESTREAM
pour stocker de grandes données binaires. Dans ce cas, les données seront disponibles dans les requêtes, mais stockées physiquement sur le système de fichiers.
Microsoft a publié un article technique sur SQL Server
qui contient des informations utiles sur comment et quand utiliser FILESTREAM
. Sur la 8ème page, le tableau de comparaison montre que le FILESTREAM a un avantage sur les BLOB stockés dans la base de données si les données stockées sont supérieures à 1 Mo .
REMARQUE FILESTREAM n'est pas disponible dans SQL Server 2005 ! (Et SQL Server 2005 n'est pas n'est plus pris en charge par Microsoft - sauf le support étendu)
Quelques articles supplémentaires à lire
Vous pouvez voir des tableaux de comparaison sur le blog SQLSkills sur ses performances.
Microsoft Research a également publié un Article technique :To BLOB or Not To BLOB sur les flux de fichiers et les BLOBS.
Vous pouvez l'essayer, mais comme toujours, vous devez exécuter un test spécifique à l'environnement pour vous assurer que cette solution fonctionne ou non. S'il s'agit d'un produit sur le marché, c'est une bonne idée d'implémenter le support FILESTREAM en tant que fonctionnalité opt-in ou opt-out.
Juste une remarque en passant
NVARCHAR
est deux fois plus grand que VARBINARY
car SQL Server stocke chaque caractère sur 2 octets dans l'unicode (NCHAR
, NVARCHAR
, etc.) colonnes.