8
votes

Quel type de données pour stocker des images et des documents dans SQL Server 2005

Je dois prolonger une application .NET existante pour stocker des images et des documents (principalement des PDF) dans une base de données SQL Server 2005.

Quel type de données SQL Server est mieux utilisé pour enregistrer ces fichiers et qu'il est significatif de créer une table séparée qui détient les champs, ou n'est-ce pas un problème de mettre ces champs directement dans les tables d'entreprise "normales", aussi longtemps que la Sélectionner des instructions ne les sélectionne pas (ou sélectionnez *).


0 commentaires

4 Réponses :


7
votes

SQL Server 2005: Blob Varchar (Max)
SQL Server 2008: filtream


2 commentaires

"Goutte"? Ce n'est pas vraiment un type de données. "Vieux" types texte , ntext et image sont obsolètes, la réponse correcte pour 2005 devrait être (comme d'autres personnes correctement indiquées) varchar (max) .


varchar? varbinary, sûrement?



3
votes

Utilisez Varbinary (Max) pour stocker des images et des documents sur SQL Server. Je recommanderais de les avoir dans une table séparée et non la table principale par elle-même.


0 commentaires

6
votes

varbinaire ou filtream

Nul besoin de les stocker dans une table séparée - il y a des commandes intégrées que vous pouvez utiliser pour la forcer à être stockée dans / hors ligne à l'aide de sp_tableOption:

http://msdn.microsoft.com/en-us/library/ MS189087.aspx

http://msdn.microsoft.com/en-us/library/ MS186981.aspx

http: // www. Microsoft.com/sqlserver/2008/fr/us/wp-sql-2008-Manage-unstructured.aspx

(Notez qu'il pourrait y avoir des avantages pour stocker dans une table séparée si vous utilisez des groupes de fichiers différents et les sauvegardez de manière indépendante ou quelque chose comme ça - mais cela pourrait être considéré comme exceptionnel)


1 commentaires

Filtream n'est pas disponible avant que SQL Server 2008



1
votes

Pour répondre à l'autre partie de votre question, si vous stockez des données binaires dans une base de données, ne mélangez pas les données dans une table avec d'autres champs. Vous ne ferez probablement aucune recherche ou indexation sur les données binaires et l'accès à toutes les métadonnées sera ralentie par la taille de la table. Gardez simplement les images / fichiers dans une table séparée.

Bien que je puisse penser à de bonnes raisons de conserver des fichiers dans une base de données SQL Server (par exemple: pas une application Web), ce que @jonh dit également: gardez-les dans le système de fichiers à moins que vous n'ayez une raison convaincante.


0 commentaires