Es gibt ein wirklich gutes Papier von Microsoft Research mit dem Titel To Blob oder Not To Blob .
Ihre Schlussfolgerung nach einer Vielzahl von Leistungstests und Analysen lautet:
Wenn Ihre Bilder oder Dokumente in der Regel weniger als 256 KB groß sind, ist das Speichern in einer Datenbank-Spalte VARBINARY effizienter
Wenn Ihre Bilder oder Dokumente in der Regel größer als 1 MB sind, ist das Speichern im Dateisystem effizienter (und mit dem FILESTREAM-Attribut von SQL Server 2008 stehen sie weiterhin unter Transaktionskontrolle und sind Teil der Datenbank).
Dazwischen ist es je nach Verwendung ein bisschen durcheinander
Wenn Sie Ihre Bilder in eine SQL Server-Tabelle einfügen möchten, würde ich dringend empfehlen, eine separate Tabelle zum Speichern dieser Bilder zu verwenden. Speichern Sie das Mitarbeiterfoto nicht in der Mitarbeitertabelle. Bewahren Sie sie in einer separaten Tabelle auf. Auf diese Weise kann die Mitarbeitertabelle schlank und gemein und sehr effizient bleiben, vorausgesetzt, Sie müssen nicht immer auch das Mitarbeiterfoto als Teil Ihrer Abfragen auswählen.
Informationen zu Dateigruppen finden Sie unter Dateien und Dateigruppenarchitektur . Grundsätzlich würden Sie Ihre Datenbank entweder von Anfang an mit einer separaten Dateigruppe für große Datenstrukturen erstellen oder später eine zusätzliche Dateigruppe hinzufügen. Nennen wir es "LARGE_DATA".
Wenn Sie jetzt eine neue Tabelle erstellen müssen, in der VARCHAR- (MAX) oder VARBINARY- (MAX) Spalten gespeichert werden müssen, können Sie diese Dateigruppe für die großen Datenmengen angeben:
CREATE TABLE dbo.YourTable
(....... define the fields here ......)
ON Data
TEXTIMAGE_ON LARGE_DATA
Schauen Sie sich das MSDN-Intro für Dateigruppen an und spielen Sie damit herum!