2012-07-25 12 views
5

Kürzlich hat unser Team FILESTREAM angeschaut, um die Möglichkeiten unserer proprietären Anwendung zu erweitern. Der Hauptzweck dieser App ist die Verwaltung der verschiedenen PDFs, Bilder und Dokumente für alle Teile, die wir herstellen. Unsere ASP-Anwendung verwendet einige Tools von Drittanbietern, um die Anzeige dieser Dateien zu ermöglichen. Wir haben derzeit 980 GB Daten auf dem Fileserver. Wir haben etwa 200 GB Binärdaten in SQL Server, die wir extrahieren möchten, da sie nicht gut funktionieren. Daher scheint FILESTREAM ein guter Kompromiss zu den beiden Hauptproblemen bei der Datenspeicherung/-zugriffe zu sein.FILESTREAM/FILETABLE Erläuterungen zur Implementierung

Ein paar Dinge sind nicht ganz klar zu uns:

  1. FILESTREAM oder nicht seine Daten auf einem Laufwerk speichern können, die nicht lokal gebunden ist. Wir haben bereits einen Dateiserver mit einem RAID 10 (1,5 TB Laufwerke). Dieser Server speichert jetzt alle Dokumente, müssten wir diese Laufwerke auf den SQL Server für FILESTREAM verschieben? Das wäre eine harte Nuss, denn der Server verdoppelt sich auch als Application Server (zwei VMs auf einem physischen Server).

  2. FILETABLE speichert die allgemeinen Metadaten über die Dateien, aber wo ist der Volltext-Teil davon gespeichert, um die Suche nach Dateien wie doc/docx zu ermöglichen? Ist das getrennt? Können Sie Kriterien zum Suchen frei hinzufügen? Wenn ja, werden Links zur Klärung geschätzt.

  3. Kann FILETABLE in einer anderen Tabelle mit einem Fremdschlüssel referenziert werden?

Vielen Dank im Voraus

EDIT: Für dieses Web-Video alles und in Bezug auf mehr aus dem Jahr 2008 zu erklären Filestream bis 2012 und die cavets bei den in diesen Fragen berücksichtigen zu müssen (ich ihn ernst rep wäre, wenn Ich könnte): http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

Zusammenfassend werden wir FILESTREAM nicht verwenden, da es zu einem enormen Anstieg für Investitionen zu investieren wäre.

EDIT 2:

Update # 1 - Nach sorgfältigem Filetable neben FILESTREAM Beurteilung bekamen wir eine Gewinnkombination. Wir mussten die Dateien auf den neuen Server verschieben (war nicht zu schmerzhaft, da sie auf der gleichen VM waren). Es dauerte ehrlich gesagt mehr Zeit, um ein Extraktionswerkzeug zu schreiben, um die Binärdaten innerhalb von SQL in das Dateisystem zu schreiben.

Update # 2 - Das seperate war aber wieder Bob hatte eine ausgezeichnete Webinar erläutern dies: http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

Update # 3 - Verwenden von TFT Vererbungs wir den Text & Tabellen Tabelle recycelt wir (minus die riesigen Binärblob) hatte die In unseren Legacy-Apps waren nur wenige Änderungen erforderlich. Das war ein riesiges Ergebnis für das Entwicklerteam.

Antwort

3

Der Speicherort, in dem die Dateien für FileTables gespeichert werden, muss lokal sein oder mindestens SQL Server als lokal angezeigt werden, damit ein cleverer San-Treiber sie austricksen kann. Da das FileTables-Zeug auf dem FILESTREAM-Material basiert, stelle ich mir vor, dass die Beschränkungen dieselben sind.

Die Suche nach Filetabellen erfolgt über die Containstable-Funktion, die dokumentiert ist on MSDN die Suchkriterien verwendet die gleiche Syntax wie FULLTEXT Suche AFAIK.

Für alle Zwecke und Zwecke ist die FileTable eine typische Tabelle, so dass sie verbunden, gesucht oder was auch immer sein kann.Die einzige Sache ist, dass Sie einige Funktionen von SQL-Server verwenden müssen, um die FILESTREAM-GUIDs in etwas Nützlicheres wie einen Dateipfad zu ändern.

+0

Spot auf. Wir haben einen kleinen Schluckauf erlebt, seit wir das Entity-Framework verwenden. Wir verwendeten einen Softkey (wie in keiner FK-Bedingung) für die Stream-ID. Der EF-Designer ignoriert die FileTables vollständig. Wir haben gerade ein kleines ADO.Net-Projekt in unserem Hauptprojekt gemacht, um das Hochladen/Herunterladen von Dokumenten zu ermöglichen. – jjhayter

Verwandte Themen