Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Beste Möglichkeit, eine Schriftart in einer SQL Server-Datenbank zu speichern

Es gibt ein wirklich gutes Papier von Microsoft Research mit dem Titel To Blob or Not To Blob .

Ihre Schlussfolgerung nach einer großen Anzahl von Leistungstests und Analysen lautet wie folgt:

  • Wenn Ihre Bilder oder Dokumente normalerweise weniger als 256 KB groß sind, ist es effizienter, sie in einer VARBINARY-Datenbankspalte zu speichern

  • Wenn Ihre Bilder oder Dokumente normalerweise größer als 1 MB sind, ist das Speichern im Dateisystem effizienter (und mit dem FILESTREAM-Attribut von SQL Server 2008 sind sie immer noch unter Transaktionskontrolle und Teil der Datenbank)

  • Zwischen diesen beiden ist es je nach Verwendung etwas umständlich

Wenn Sie sich entscheiden, Ihre Bilder in eine SQL Server-Tabelle zu legen, 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 effizient bleiben, vorausgesetzt, Sie müssen bei Ihren Abfragen nicht immer auch das Mitarbeiterfoto auswählen.

Informationen zu Dateigruppen finden Sie unter Dateien und Dateigruppenarchitektur für eine Einleitung. 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".

Wann immer Sie jetzt eine neue Tabelle erstellen müssen, die VARCHAR(MAX)- oder VARBINARY(MAX)-Spalten speichern muss, können Sie diese Dateigruppe für die großen Daten angeben:

 CREATE TABLE dbo.YourTable
     (....... define the fields here ......)
     ON Data                   -- the basic "Data" filegroup for the regular data
     TEXTIMAGE_ON LARGE_DATA   -- the filegroup for large chunks of data

Schauen Sie sich die MSDN-Einführung zu Dateigruppen an und spielen Sie damit herum!