Welcher Speicherort, SQL Server oder Dateisystem, führt bei der Rettung TIFF-Bilder in einem besseren Leistung würde?

StackOverflow https://stackoverflow.com/questions/1234551

Frage

Unser System braucht TIFF-Bilder von ~ 3k in der Größe zu speichern. Wir erhalten ~ 300 Bilder zu einem bestimmten Zeitpunkt und müssen sie schnell verarbeiten. Sobald ~ 100.000 Bilder empfangen werden, werden die Bilder unser System auf ein anderes Archivsystem übertragen ausgeschaltet oder gelöscht.

Ich bin auf der Suche für die beste Leistung in Bezug auf die anfänglichen Speichern der Bilddateien. Die Aufgabe der Übertragung der Bilder für die Archivierung ist weniger Leistung kritisch.

Welchen Speicherort, SQL Server oder Dateisystem würden bei der Rettung TIFF-Bilder zu einer besseren Leistung führen?

Gibt es andere Überlegungen oder gotchas bewusst zu sein?

War es hilfreich?

Lösung

die Bilder im Dateisystem speichern wird Ihnen eine bessere Leistung geben. Sie müssen nur einen Eintrag in eine entsprechende Datenbank-Tabelle für die TIFF-Bild-Anhänge setzen - und verwenden, die den Pfad des Bildes auf dem Dateisystem zu erhalten.

Sie mögen vielleicht um die Leistung weiter steigern, indem sie die Bilder auf einem Webserver-Hosting - IIS (falls zutreffend) und die Client-Anwendungen haben (wieder, wenn relevant) abrufen sie direkt dort statt frmo

.

Andere Tipps

Nach meiner Erfahrung SQL Server hat mit der Speicherung von Blobs in die Datenbank anständig. Solange ich Best Practices folgen zu Suchen, Normalisierung, etc. Ich habe sie gefunden gut zu funktionieren.

Aus irgendeinem Grund, ich persönlich möchte nicht riesig PDF und DOC und JPG-Dateien in der Datenbank speichern, aber dann, das ist genau das, was Microsoft Sharepoint tut, und tut gut.

Ich würde auf jeden Fall überlegen Blobs in meinem db setzen.

Die SQL Server 2008-Version hat ein neues Feature namens FILESTREAM. Ein Teil ihrer Dokumentation hat auch einen Abschnitt Best Practices , in denen die MS Leute sagen, dass FILESTREAM ins Spiel kommen sollte, wenn die BLOB-Objekte typischerweise größer 1 MB sind.

Die MSDN-Seite heißt es:

  

Wann verwendet FILESTREAM Wenn die   folgende Bedingungen erfüllt sind, können Sie   sollten prüfen, FILESTREAM mit:    - Objekte, die gespeichert werden, im Durchschnitt größer als 1 MB. Zum   kleinere Objekte, Speicherung   varbinary (max) BLOBs in der Datenbank   bietet oft eine bessere Streaming   Leistung.

Also habe ich mit einem 3 KB TIFF erraten, könnten Sie das Speichern schön in einem VARBINARY (MAX) Feld in der SQL Server 2005-Tabelle. Da es noch kleiner als die 8k Seitengröße für SQL Server, gut paßt das wird!

Sie können auch zu prüfen, Ihre BLOBs in ihren eigenen Tisch setzen und von dort Ihre „Basis“ Datenreihe verweisen. Auf diese Weise, wenn Sie nur die Basisdaten abfragen müssen (Ihre Ints, Varchars etc.), Ihre Anfrage wird nicht nach unten von BLOBs festgefahren werden, die gespeichert vermischte mit anderen Sachen.

Marc

Der Satellit Katalogsystem an INPE / Brasilien speichert eine Referenz von TIFF-Bilder in Dateisystem gespeichert. Aber die Bilder sind ein wenig größer - +/- 100 MB. Wenn die Datei im Browser angezeigt werden muß, der PHP-Code, um den TIFF-Inhalt auf Platte liest und es ziehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top