FileTables (SQL Server)

Gilt für: SQL Server

Die Dateitabellen-Funktion bietet Unterstützung für den Windows-Dateinamensraum und Kompatibilität mit Windows-Anwendungen für die in SQL Server gespeicherten Dateidaten. Mit der Dateitabelle können das Speichersystem und die Datenverwaltungskomponenten einer Anwendung integriert werden. Zudem werden integrierte SQL Server-Dienste (z. B. Volltextsuche und semantische Suche) über unstrukturierte Daten und Metadaten bereitgestellt.

So können Sie Dateien und Dokumente in besonderen Tabellen in SQL Server speichern, die als Dateitabellen bezeichnet werden, und auf diese über Windows-Anwendungen zugreifen, so als ob sie im Dateisystem gespeichert wären, ohne Clientanwendungen ändern zu müssen.

Die Dateitabellen -Funktion basiert auf der SQL Server FILESTREAM-Technologie. Weitere Informationen zu FILESTREAM finden Sie unter FILESTREAM (SQL Server).

Vorteile der Dateitabellen-Funktion

Die Ziele der FileTable-Funktion umfassen Folgendes:

  • Windows-API-Kompatibilität für Dateidaten, die in einer SQL Server-Datenbank gespeichert sind. Die Windows-API-Kompatibilität schließt Folgendes ein:

    • Nicht transaktionaler Streamingzugriff und direkte Updates an FILESTREAM-Daten.

    • Ein hierarchischer Namespace von Verzeichnissen und Dateien.

    • Speichern von Dateiattributen, z. B. Erstellungsdatum und Änderungsdatum.

    • Unterstützung von APIs für die Windows-Datei- und Verzeichnisverwaltung.

  • Kompatibilität mit anderen SQL Server-Funktionen, einschließlich Verwaltungstools, Diensten und relationalen Abfragefunktionen über FILESTREAM und Dateiattributdaten.

Dateitabellen beseitigen ein großes Hindernis bei der Verwendung von SQL Server zum Speichern und Verwalten unstrukturierter Daten, die zu aktuell als Dateien auf Dateiservern gespeichert sind. Unternehmen können diesen Daten von Dateiservern in Dateitabellen verschieben, um die von SQL Server bereitgestellten integrierten Verwaltungsfunktionen und Dienste verwenden zu können. Gleichzeitig kann die Windows-Anwendungskompatibilität für vorhandene Windows-Anwendungen aufrechterhalten werden, die diese Daten als Dateien im Dateisystem betrachten.

Was sind Dateitabellen?

SQL Server bietet eine besondere Dateitabelle– auch als FileTable bezeichnet – für Anwendungen, für die ein Datei- und Verzeichnisspeicher in der Datenbank mit Windows-API-Kompatibilität und nicht transaktionsbasiertem Zugriff erforderlich ist. Eine Dateitabelle ist eine spezielle Benutzertabelle mit einem vordefinierten Schema. Darin können FILESTREAM-Daten, Informationen zur Datei- und Verzeichnishierarchie sowie Dateiattribute gespeichert werden.

Eine FileTable bietet die folgende Funktionalität:

  • Eine FileTable stellt eine Hierarchie von Verzeichnissen und Dateien dar. Sie speichert Daten zu allen Knoten in dieser Hierarchie, sowohl für Verzeichnisse als auch für die Dateien, die sie enthält. Diese Hierarchie beginnt bei einem Stammverzeichnis, das Sie angeben, wenn Sie die FileTable erstellen.

  • Jede Zeile in einer FileTable stellt eine Datei oder ein Verzeichnis dar.

  • Jede Zeile enthält die im Folgenden aufgeführten Elemente. Weitere Informationen zum Schema einer FileTable finden Sie unter FileTable Schema.

    • Eine file_stream Spalte für Datenstromdaten und einen stream_id (GUID)-Bezeichner. (Die Spalte file_stream für ein Verzeichnis ist NULL.)

    • Sowohl die Spalte path_locator, als auch die Spalte parent_path_locator zur Darstellung und Verwaltung der aktuellen Artikelhierarchie (Datei oder Verzeichnis) und Verzeichnishierarchie.

    • 10 Dateiattribute, z. B. Erstellungsdatum und Änderungsdatum, die von Datei-E/A-APIs benötigt werden.

    • Eine Typspalte, die die Volltextsuche und die semantische Suche für Dateien und Dokumente unterstützt.

  • Eine FileTable erzwingt bestimmte systemdefinierte Einschränkungen und Trigger, um die Dateinamespacesemantik beizubehalten.

  • Wenn die Datenbank für nicht transaktionalen Zugriff konfiguriert ist, wird die in der Dateitabelle dargestellte Datei- und Verzeichnishierarchie in der für die SQL Server-Instanz konfigurierten FILESTREAM-Freigabe verfügbar gemacht. Dadurch wird der Dateisystemzugriff für Windows-Anwendungen bereitgestellt.

Einige zusätzliche Eigenschaften von Dateitabellen umfassen Folgendes

  • Die Datei- und Verzeichnisdaten, die in einer FileTable gespeichert sind, werden durch eine Windows-Freigabe für nicht transaktionalen Dateizugriff für Windows-API-basierte Anwendungen verfügbar gemacht. Für eine Windows-Anwendung sieht dies wie eine normale Freigabe mit Dateien und Verzeichnissen aus. Anwendungen können die Dateien und die Verzeichnisse in dieser Freigabe mithilfe eines umfangreichen Satzes von Windows-APIs verwalten.

  • Bei der Verzeichnishierarchie, die über die Freigabe angegeben wird, handelt es sich um eine rein logische Verzeichnisstruktur, die innerhalb der FileTable beibehalten wird.

  • Aufrufe zum Erstellen oder Ändern einer Datei oder eines Verzeichnisses über die Windows-Freigabe werden von einer SQL Server-Komponente abgefangen und in der Dateitabelle in den entsprechenden relationalen Daten wiedergegeben.

  • Windows-API-Vorgänge sind von ihrem Wesen her nicht transaktional und sind nicht Benutzertransaktionen zugeordnet. Transaktionszugriff auf FILESTREAM-Daten, die in einer FileTable gespeichert sind, wird jedoch vollständig unterstützt, wie dies auch bei FILESTREAM-Spalten in einer regulären Tabelle der Fall ist. Wenn Sie Dateien häufig von mehreren Verbindungen aus ändern und einen angemessenen Dateischutz sicherstellen müssen, verwenden Sie den transaktionellen FILESTREAM-Zugriff über OpenSqlFilestream() anstelle von exklusiven Dateisperren auf der Windows API-Ebene.

  • Dateitabellen können auch über den normalen Transact-SQL-Zugriff abgefragt und aktualisiert werden. Sie sind auch in die SQL Server-Verwaltungstools und Funktionen wie die Datensicherung integriert.

  • Sie können keine E-Mail-Anforderung über Datenbank-Mail senden und keine Datei aus einem FILESTREAM-Verzeichnis (und auch einer Dateitabelle) anfügen. Der Dateisystemfilter-Treiber RsFx0420 untersucht eingehende E/A-Anforderungen für den FILESTREAM-Ordner. Wenn die Anforderung nicht sowohl von der ausführbaren SQL Server-Datei als auch dem FILESTREAM-Code stammt, ist sie explizit nicht zulässig.

Weitere Überlegungen zum Verwenden von Dateitabellen

Überlegungen zur Verwaltung

Informationen zu FILESTREAM und FileTables

FileTables werden getrennt von FILESTREAM konfiguriert. Sie können daher weiterhin die FILESTREAM-Funktion verwenden, ohne den nicht transaktionalem Zugriff zu aktivieren oder FileTables zu erstellen.

Es gibt keinen nicht transaktionalen Zugriff auf FILESTREAM-Daten außer durch FileTables. Wenn Sie daher den nicht transaktionellen Zugriff aktivieren, hat dies keine Auswirkungen auf das Verhalten vorhandener FILESTREAM-Spalten und Anwendungen.

Informationen zu FileTables und nicht transaktionalem Zugriff

Sie können den nicht transaktionalen Zugriff auf Datenbankebene aktivieren bzw. deaktivieren.

Der nicht transaktionale Zugriff kann auf Datenbankebene konfiguriert oder optimiert werden, indem Sie ihn ausschalten oder nur den Lesezugriff bzw. den vollständigen Lese-/Schreibzugriff aktivieren.

Dateitabellen unterstützen keine Speicherzuordnungs-Dateien

Dateitabellen unterstützen keine Speicherzuordnungs-Dateien. Editor und Paint sind zwei häufige Beispiele für Anwendungen, die Speicherabbilddateien verwenden. Sie können diese Anwendungen nicht auf dem gleichen Computer wie SQL Server verwenden, um in einer Dateitabelle gespeicherte Dateien zu öffnen. Sie können diese Anwendungen jedoch auf einem Remotecomputer verwenden, um in einer Dateitabelle gespeicherte Dateien zu öffnen, da die Speicherabbildfunktion unter diesen Umständen nicht verwendet wird.