Vermeiden Sie die Verwendung von BLOBs zum Speichern von Bilddaten in SQL Server-Datenbanken


Binäre große Objekte oder BLOBs sind Freiform-Datenobjekte in SQL Server, die für verschiedene Zwecke verwendet werden können. Eine mögliche Anwendung ist die Verwendung von BLOBs zum Speichern von Bilddaten. Beispielsweise kann eine Website mit Datensätzen, die sich auf ein bestimmtes Element beziehen, eine Tabelle mit BLOBs enthalten, die Bilder von Elementen enthalten. Einige Programmierer fühlen sich von der Idee angezogen, alles auf diese Weise in der Datenbank speichern zu können, um die Benutzerfreundlichkeit und Portabilität zu gewährleisten. So elegant eine Idee auch klingen mag, sie ist einfach nicht sehr gut, und dafür gibt es mehrere Gründe.

Erstens wirkt sich die Hinzufügung dieser zusätzlichen Datenbankverarbeitungsleistung und Speicherbandbreite auf das Hin- und Herbewegen von Bildern auf die Gesamtleistung der Datenbank aus. Bilder müssen nicht in der Datenbank gespeichert werden, sondern die regulären Daten, aus denen die Datenbank besteht. Je mehr Platz für das vorhanden ist, was die Datenbank wirklich tun sollte, desto besser.

Zweitens gibt es in jeder Installation von Windows Server bereits eine sehr leistungsfähige, hierarchische Datenbank, die speziell zum Speichern und Kopieren von Datenmengen in großen Mengen – insbesondere von Bilddaten – entwickelt wurde. Es heißt das NTFS-Dateisystem. Windows verfügt bereits über zahlreiche Systemressourcen, die für das Zwischenspeichern und Verwalten des Dateisystems vorgesehen sind. Daher ist es sinnlos, diese nicht zu nutzen. Wenn das vorhandene Dateisystem mit den richtigen Berechtigungen und der richtigen Sicherheit eingerichtet ist, ist es eine absolut legitime Möglichkeit, Bilder zu speichern, die in Verbindung mit einer Datenbank verwendet werden. Versuchen Sie nicht, die Arbeit des Dateisystems zu wiederholen.

Drittens führt das Speichern großer Mengen von Binärdaten in SQL Server zu Problemen bei der physischen Datenbankverwaltung und verschwendet Speicherplatz. SQL Server weist Daten auf 8 KB-Seiten zu, während NTFS in Blöcken von nur 512 Byte arbeiten kann. Durch das Speichern sehr vieler Bilder in einer SQL Server-Datenbank wird viel mehr Speicherplatz verschwendet. SQL Server können Speichern Sie einen Teil der Binärdaten mit weniger als 64 Byte als Teil der Stammstruktur des B-Baums, aus dem die Datenbank besteht. Es gibt jedoch nur sehr wenige Bilder mit weniger als 64 Byte! Darüber hinaus ist das Sichern und Wiederherstellen einer monolithischen Datenbank, die bis zu vielen Gigabyte groß werden kann, viel problematischer und zeitaufwändiger als das schrittweise Sichern einzelner Dateien.


Serdar Yegulalp ist der Herausgeber der Windows 2000 Power Users Newsletter. Schauen Sie sich seine an Windows 2000-Blog Für seine neuesten Ratschläge und Überlegungen zur Welt der Windows-Netzwerkadministratoren teilen Sie bitte auch Ihre Gedanken mit!

Dig Deeper in der Windows-Clientverwaltung

Similar Posts

Leave a Reply