Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Meilleur moyen de stocker une grande chaîne dans la base de données SQL Server ?

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.