FILESTREAM (SQL Server)

Gilt für:SQL Server – nur Windows

FILESTREAM ermöglicht SQL Server-basierten Anwendungen das Speichern unstrukturierter Daten, z. B. Dokumente und Bilder, im Dateisystem. Anwendungen können die umfangreichen Streaming-APIs und die Leistung des Dateisystems verwenden und gleichzeitig Standard Transaktionskonsistenz zwischen den unstrukturierten Daten und den entsprechenden strukturierten Daten beibehalten.

FILESTREAM integriert die SQL Server-Datenbank-Engine in ein NTFS- oder ReFS-Dateisystem, indem varbinary(max) binary large object (BLOB)-Daten als Dateien im Dateisystem gespeichert werden. Mit Transact-SQL-Anweisungen können FILESTREAM-Daten eingefügt, aktualisiert, abgefragt, gesucht und gesichert werden. Die Win32-Dateisystemschnittstellen stellen Streamingzugriff auf die Daten bereit.

FILESTREAM verwendet den NT-Systemcache zum Zwischenspeichern von Dateidaten. Durch das Zwischenspeichern von Dateien im Systemcache können Sie die Auswirkungen von FILESTREAM-Daten auf Datenbank-Engine Leistung verringern. Der SQL Server-Pufferpool wird nicht verwendet. Daher steht dieser Speicher für die Abfrageverarbeitung zur Verfügung.

FILESTREAM wird nicht automatisch aktiviert, wenn Sie SQL Server installieren oder aktualisieren. Sie müssen FILESTREAM mithilfe von SQL Server-Konfigurations-Manager und SQL Server Management Studio aktivieren. Um FILESTREAM zu verwenden, müssen Sie eine Datenbank mit einer bestimmten Dateigruppe erstellen bzw. ändern, sodass sie diese Dateigruppe enthält. Erstellen bzw. ändern Sie dann eine Tabelle, sodass diese eine varbinary(max) -Spalte mit dem FILESTREAM-Attribut enthält. Nachdem Sie diese Aufgaben abgeschlossen haben, können Sie Transact-SQL und Win32 verwenden, um die FILESTREAM-Daten zu verwalten.

Verwendungsbereiche von FILESTREAM

In SQL Server können BLOBs standard varbinary(max) -Daten sein, die die Daten in Tabellen speichern, oder FILESTREAM varbinary(max) -Objekte, die die Daten im Dateisystem speichern. Größe und Verwendung der Daten bestimmen, ob Sie sie in einer Datenbank oder im Dateisystem speichern sollten. Wenn die folgenden Bedingungen zutreffen, sollten Sie die Verwendung von FILESTREAM in Betracht ziehen:

  • Die Objekte, die gespeichert werden, sind im Durchschnitt größer als 1 MB.
  • Schneller Lesezugriff ist wichtig.
  • Sie entwickeln Anwendungen, die eine mittlere Ebene für Anwendungslogik verwenden.

Bei kleineren Objekte ist die Streamingleistung oft besser, wenn varbinary(max) -Blobs in der Datenbank gespeichert werden.

FILESTREAM-Speicherung

Die FILESTREAM-Speicherung wird als varbinary(max) -Spalte implementiert, deren Daten als Blobs im Dateisystem gespeichert werden. Die Größe der BLOBs wird nur durch die Volumegröße des Dateisystems beschränkt. Die standardmäßige Varbinary(max) -Beschränkung von 2-GB-Dateigrößen gilt nicht für BLOBs, die im Dateisystem gespeichert sind.

Um anzugeben, dass die Daten einer Spalte im Dateisystem gespeichert werden sollten, geben Sie das FILESTREAM-Attribut für eine varbinary(max) -Spalte an. Dieses Attribut bewirkt, dass der Datenbank-Engine alle Daten für diese Spalte im Dateisystem, aber nicht in der Datenbankdatei speichert.

FILESTREAM-Daten müssen in FILESTREAM-Dateigruppen gespeichert werden. Eine FILESTREAM-Dateigruppe ist eine besondere Dateigruppe, die Dateisystemverzeichnisse statt der Dateien selbst enthält. Diese Dateisystemverzeichnisse werden als Datencontainerbezeichnet. Datencontainer sind die Schnittstelle zwischen Datenbank-Engine Speicher und Dateisystemspeicher.

Bei Verwendung von FILESTREAM sind die folgenden Punkte zu beachten:

  • Wenn eine Tabelle eine FILESTREAM-Spalte enthält, muss jede Zeile über eine nicht null eindeutige Zeilen-ID verfügen.
  • Einer FILESTREAM-Dateigruppe können mehrere Datencontainer hinzugefügt werden.
  • FILESTREAM-Datencontainer können nicht geschachtelt werden.
  • Wenn Sie Failoverclustering verwenden, müssen sich die FILESTREAM-Dateigruppen auf freigegebenen Datenträgerressourcen befinden.
  • FILESTREAM-Dateigruppen können auf komprimierten Volumes erstellt werden.

Integrierte Verwaltung

Da FILESTREAM als varbinary(max)-Spalte implementiert und direkt in die Datenbank-Engine integriert ist, funktionieren die meisten SQL Server-Verwaltungstools und -Funktionen ohne Änderung für FILESTREAM-Daten. Beispielsweise können Sie alle Sicherungs- und Wiederherstellungsmodelle mit FILESTREAM-Daten verwenden, und die FILESTREAM-Daten werden zusammen mit den strukturierten Daten in der Datenbank gesichert. Wenn Sie FILESTREAM-Daten nicht mit relationalen Daten sichern möchten, können Sie eine partielle Sicherung verwenden, um FILESTREAM-Dateigruppen auszuschließen.

Integrierte Sicherheit

In SQL Server werden FILESTREAM-Daten genauso gesichert wie andere Daten: durch Erteilen von Berechtigungen auf Tabellen- oder Spaltenebene. Wenn ein Benutzer über Berechtigungen zum Öffnen der FILESTREAM-Spalte einer Tabelle verfügt, dann er die zugehörigen Dateien öffnen.

Hinweis

FILESTREAM-Daten können nicht verschlüsselt werden.

Nur das Konto, unter dem das SQL Server-Dienstkonto ausgeführt wird, erhält Berechtigungen für den FILESTREAM-Container. Es wird empfohlen, keine anderen Konten berechtigungen für den Datencontainer zu erteilen.

Hinweis

SQL-Anmeldungen funktionieren nicht mit FILESTREAM-Containern. Nur NTFS- oder ReFS-Authentifizierung funktioniert mit FILESTREAM-Containern.

Zugreifen auf BLOB-Daten mit Transact-SQL und Dateisystem-Streamingzugriff

Nachdem Sie Daten in einer FILESTREAM-Spalte gespeichert haben, können Sie mithilfe von Transact-SQL-Transaktionen oder mit Win32-APIs auf die Dateien zugreifen.

Zugriff über Transact-SQL

Mithilfe von Transact-SQL können Sie FILESTREAM-Daten einfügen, aktualisieren und löschen:

  • Mit einem Einfügevorgang können Sie ein FILESTREAM-Feld vorab mit einem Nullwert, einem leeren Wert oder relativ kurzen Inlinedaten füllen. Große Datenmengen lassen sich jedoch effizienter in eine Datei streamen, wenn Win32-Schnittstellen verwendet werden.
  • Wenn Sie ein FILESTREAM-Feld aktualisieren, ändern Sie die zugrunde liegenden BLOB-Daten im Dateisystem. Wenn ein FILESTREAM-Feld auf NULL festgelegt wird, werden die dem Feld zugeordneten BLOB-Daten gelöscht. Sie können kein Transact-SQL-Blocked Update verwenden, das als UPDATE**.**Write() implementiert wurde, um partielle Aktualisierungen der Daten auszuführen.
  • Wenn Sie eine Zeile löschen oder eine Tabelle, die FILESTREAM-Daten enthält, löschen oder abschneiden, löschen Sie auch die zugrunde liegenden BLOB-Daten im Dateisystem.

Dateisystem-Streamingzugriff

Die Win32-Streamingunterstützung funktioniert im Kontext einer SQL Server-Transaktion. Im Rahmen einer Transaktion können Sie mithilfe von FILESTREAM-Funktionen, einen logischen UNC-Pfad für eine Datei ermitteln. Sie verwenden dann die OpenSqlFilestream-API, um ein Dateihandle abzurufen. Dieses Handle kann dann von Win32-Dateistreamingschnittstellen, wie ReadFile() und WriteFile(), verwendet werden, um über das Dateisystem auf die Datei zuzugreifen und diese zu aktualisieren.

Da Dateivorgänge transaktional sind, können Sie FILESTREAM-Dateien nicht über das Dateisystem löschen oder umbenennen.

Warnung

Der FILESTREAM-Container ist ein ordner, der von SQL Server verwaltet wird. Fügen Sie dateien nicht manuell oder über andere Anwendungen im FILESTREAM-Ordner hinzu oder entfernen Sie sie nicht. Wenn Sie dies tun, führt dies zu Sicherungs- und Inkonsistenzfehlern. Weitere Informationen finden Sie unter MSSQLSERVER_3056, MSSQLSERVER_7908 und MSSQLSERVER_7906.

Anweisungsmodell

Der FILESTREAM-Dateisystemzugriff modelliert eine Transact-SQL-Anweisung mithilfe der geöffneten und schließenden Datei. Die Anweisung beginnt, wenn ein Dateihandle geöffnet wird, und endet, wenn das Handle geschlossen wird. Wenn beispielsweise ein Schreibhandle geschlossen wird, wird jeder mögliche AFTER-Trigger, der in der Tabelle registriert ist, ausgelöst, als ob eine UPDATE-Anweisung abgeschlossen ist.

Speichernamespace

In FILESTREAM steuert die Datenbank-Engine den NAMESPACE des physischen BLOB-Dateisystems. Eine neue intrinsische Funktion namens PathNameliefert den logischen UNC-Pfads des BLOBs, das mit jeder einzelnen FILESTREAM-Zelle der Tabelle verknüpft ist. Die Anwendung verwendet diesen logischen Pfad, um das Win32-Handle zu erhalten und die BLOB-Daten mithilfe der gewöhnlichen Win32-Dateisystemschnittstellen zu bearbeiten. Die Funktion gibt NULL zurück, wenn der Wert der FILESTREAM-Spalte gleich NULL ist.

Transacted File System Access

Die neue systeminterne Funktion GET_FILESTREAM_TRANSACTION_CONTEXT ()gibt das Token zurück, das die aktuelle Transaktion darstellt, mit der die Sitzung verknüpft ist. Die Transaktion muss bereits gestartet, aber noch nicht abgebrochen oder eingetragen worden sein. Durch den Bezug eines Tokens bindet die Anwendung die FILESTREAM-Dateisystem-Streamingvorgänge an eine gestartete Transaktion. Die Funktion gibt NULL zurück, wenn keine explizit gestartete Transaktion vorliegt.

Alle Dateihandles müssen geschlossen werden, bevor die Transaktion abgebrochen oder eingetragen wird. Wenn ein Handle außerhalb des Transaktionsbereichs geöffnet bleibt, verursachen zusätzliche Lesevorgänge gegen das Handle einen Fehler. Zusätzliche Schreibvorgänge für das Handle sind erfolgreich, aber die tatsächlichen Daten werden nicht auf den Datenträger geschrieben. Ebenso werden alle geöffneten Handles ungültig, wenn die Datenbank oder Instanz der Datenbank-Engine heruntergefahren wird.

Transaktionsbeständigkeit

Bei FILESTREAM stellt der Datenbank-Engine bei transaktionsem Commit die Dauerhaftigkeit der Transaktion für FILESTREAM-BLOB-Daten sicher, die vom Dateisystem-Streamingzugriff geändert werden.

Isolationsemantik

Die Isolationsemantik wird durch Datenbank-Engine Transaktionsisolationsstufen gesteuert. Die Isolationsstufe für lesesicherte Daten wird für Transact-SQL und den Dateisystemzugriff unterstützt. Wiederholbare Lesevorgänge, serialisierbare und Momentaufnahme Isolationsstufen werden unterstützt. Dirty read isn't supported.

Die Geöffneten Vorgänge des Dateisystemzugriffs warten nicht auf Sperren. Stattdessen schlagen die geöffneten Vorgänge sofort fehl, wenn sie aufgrund der Transaktionsisolation nicht auf die Daten zugreifen können. Die Streaming-API-Aufrufe schlagen mit ERROR_SHARING_VIOLATION fehl, wenn der Öffnenvorgang aufgrund eines Isolationsverstoßes nicht fortgesetzt werden kann.

Damit Teilaktualisierungen durchgeführt werden können, kann die Anwendung einen Dateisystembefehl (FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT) ausgeben, um den alten Inhalt in die Datei zu laden, auf die das geöffnete Handle verweist. Dadurch wird eine serverseitige alte Inhaltskopie ausgelöst. Um eine bessere Anwendungsleistung zu erzielen und potenzielle Timeouts zu vermeiden, wenn Sie mit sehr großen Dateien arbeiten, empfiehlt es sich, asynchrone E/A-Vorgänge zu verwenden.

Wenn der FSCTL-Befehl ausgegeben wird, nachdem in die durch das Handle bezeichnete Datei geschrieben wurde, dann werden die Daten des letzten Schreibvorgangs persistent gespeichert, alle zuvor geschriebenen Daten gehen verloren.

Dateisystem-APIs und unterstützte Isolationsstufen

Wenn eine Dateisystem-API aufgrund eines Isolationsverstoßes keine Datei öffnen kann, wird eine ERROR_SHARING_VIOLATION Ausnahme zurückgegeben. Diese Isolationsverletzung tritt auf, wenn zwei Transaktionen versuchen, auf dieselbe Datei zuzugreifen. Das Ergebnis des Zugriffsvorgangs hängt vom Modus ab, in dem die Datei geöffnet wurde, und von der Version von SQL Server, auf der die Transaktion ausgeführt wird. In der folgenden Tabelle werden die möglichen Ergebnisse für zwei Transaktionen beschrieben, die auf dieselbe Datei zugreifen.

Transaktion 1 Transaktion 2 Ergebnis für SQL Server 2008 (10.0.x) Ergebnis für SQL Server 2008 R2 (10.50.x) und höhere Versionen
Geöffnet zum Lesen. Geöffnet zum Lesen. Beide erfolgreich. Beide erfolgreich.
Geöffnet zum Lesen. Geöffnet zum Schreiben. Beide erfolgreich. Schreibvorgänge unter Transaktion 2 wirken sich nicht auf Lesevorgänge aus, die in Transaktion 1 ausgeführt werden. Beide erfolgreich. Schreibvorgänge unter Transaktion 2 wirken sich nicht auf Lesevorgänge aus, die in Transaktion 1 ausgeführt werden.
Geöffnet zum Schreiben. Geöffnet zum Lesen. Das Öffnen für Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl. Beide erfolgreich.
Geöffnet zum Schreiben. Geöffnet zum Schreiben. Das Öffnen für Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl. Das Öffnen für Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl.
Geöffnet zum Lesen. Geöffnet für SELECT. Beide erfolgreich. Beide erfolgreich.
Geöffnet zum Lesen. Geöffnet für UPDATE oder DELETE. Beide erfolgreich. Schreibvorgänge unter Transaktion 2 wirken sich nicht auf Lesevorgänge aus, die in Transaktion 1 ausgeführt werden. Beide erfolgreich. Schreibvorgänge unter Transaktion 2 wirken sich nicht auf Lesevorgänge aus, die in Transaktion 1 ausgeführt werden.
Geöffnet zum Schreiben. Geöffnet für SELECT. Transaktion 2 ist blockiert, bis Transaktion 1 einen Commit für die Transaktion ausführt, die Transaktion beendet oder bei der Transaktionssperre ein Timeout auftritt. Beide erfolgreich.
Geöffnet zum Schreiben. Geöffnet für UPDATE oder DELETE. Transaktion 2 ist blockiert, bis Transaktion 1 einen Commit für die Transaktion ausführt, die Transaktion beendet oder bei der Transaktionssperre ein Timeout auftritt. Transaktion 2 ist blockiert, bis Transaktion 1 einen Commit für die Transaktion ausführt, die Transaktion beendet oder bei der Transaktionssperre ein Timeout auftritt.
Geöffnet für SELECT. Geöffnet zum Lesen. Beide erfolgreich. Beide erfolgreich.
Geöffnet für SELECT. Geöffnet zum Schreiben. Beide erfolgreich. Schreibvorgänge unter Transaktion 2 wirken sich nicht auf Transaktion 1 aus. Beide erfolgreich. Schreibvorgänge unter Transaktion 2 wirken sich nicht auf Transaktion 1 aus.
Geöffnet für UPDATE oder DELETE. Geöffnet zum Lesen. Der Öffnungsvorgang unter Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl. Beide erfolgreich.
Geöffnet für UPDATE oder DELETE. Geöffnet zum Schreiben. Der Öffnungsvorgang unter Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl. Der Öffnungsvorgang unter Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl.
Geöffnet für SELECT mit wiederholbarem Lesen. Geöffnet zum Lesen. Beide erfolgreich. Beide erfolgreich.
Geöffnet für SELECT mit wiederholbarem Lesen. Geöffnet zum Schreiben. Der Öffnungsvorgang unter Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl. Der Öffnungsvorgang unter Transaktion 2 schlägt mit einer ERROR_SHARING_VIOLATION-Ausnahme fehl.

Schreiben von Remoteclients

Der Remotedateisystemzugriff auf FILESTREAM-Daten wird über das SMB (Server Message-Block)-Protokoll ermöglicht. Wenn der Client remote ist, werden Schreibvorgänge nicht auf der Clientseite zwischengespeichert. Die Schreibvorgänge werden immer an den Server gesendet. Die Daten können auf der Serverseite zwischengespeichert werden. Es wird empfohlen, dass Anwendungen, die auf Remoteclients ausgeführt werden, kleine Schreibvorgänge in Vorgänge mit größerer Größe konsolidieren. Ziel ist es, weniger Schreibvorgänge auszuführen.

Das Erstellen von zugeordneten Speicheransichten (zugeordneter E/A-Speicher) mithilfe eines FILESTREAM-Handles wird nicht unterstützt. Wenn die Speicherzuordnung für FILESTREAM-Daten verwendet wird, kann die Datenbank-Engine keine Konsistenz und Haltbarkeit der Daten oder der Integrität der Datenbank garantieren.

Empfehlungen und Richtlinien zum Verbessern der FILESTREAM-Leistung

Mit dem SQL Server FILESTREAM-Feature können Sie varbinary(max) binäre große Objektdaten als Dateien im Dateisystem speichern. Wenn Sie über eine große Anzahl von Zeilen in FILESTREAM-Containern verfügen, bei denen es sich um den zugrunde liegenden Speicher für FILESTREAM-Spalten und FileTables handelt, kann sich ein Dateisystemvolume ergeben, das eine große Anzahl von Dateien enthält. Um eine optimale Leistung bei der Verarbeitung der integrierten Daten aus der Datenbank und dem Dateisystem zu erzielen, ist es wichtig, sicherzustellen, dass das Dateisystem optimal abgestimmt ist. Im Folgenden sind einige der Optimierungsoptionen aufgeführt, die aus einer Dateisystemperspektive verfügbar sind:

  • Höhenüberprüfung für den SQL Server FILESTREAM-Filtertreiber (z. B rsfx0100.sys. ). Werten Sie alle Filtertreiber aus, die für den Speicherstapel geladen wurden, der einem Volume zugeordnet ist, in dem das FILESTREAM-Feature Dateien speichert. Stellen Sie dabei sicher, dass sich der RSFX-Treiber unten im Stapel befindet. Sie können das FLTMC.EXE-Steuerungsprogramm verwenden, um die Filtertreiber für ein bestimmtes Volume aufzuzählen. Hier ist eine Beispielausgabe des FLTMC-Hilfsprogramms: C:\Windows\System32>fltMC.exe Filter

    Filtername NUM-Instanzen Höhe Frame
    Sftredir 1 406000 0
    MpFilter 9 328000 0
    luafv 1 135000 0
    FileInfo 9 45000 0
    RsFx0103 1 41001.03 0
  • Überprüfen Sie, ob für den Filter die Eigenschaft „last access time“ (Letzte Zugriffszeit) für die Dateien deaktiviert ist. Dieses Dateisystem-Attribut ist Standard in der Registrierung enthalten: Schlüsselname:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    Name: NtfsDisableLastAccessUpdate
    Typ: REG_DWORD
    Wert: 1

  • Überprüfen Sie, ob für den Server die 8.3-Benennung deaktiviert ist. Dieses Dateisystem-Attribut ist Standard in der Registrierung enthalten: Schlüsselname:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    Name: NtfsDisable8dot3NameCreation
    Typ: REG_DWORD
    Wert: 1

  • Überprüfen Sie, ob die FILESTREAM-Verzeichniscontainer keine Dateisystemverschlüsselung oder Dateisystemkomprimierung aktiviert haben, da dies beim Zugriff auf diese Dateien zu einem Mehraufwand führen kann.

  • Führen Sie über eine Eingabeaufforderung mit erhöhten Rechten FLTMC-Instanzen aus, und stellen Sie sicher, dass keine Filtertreiber an das Volume angefügt sind, auf dem Sie die Wiederherstellung durchführen möchten.

  • Überprüfen Sie, ob FILESTREAM-Verzeichniscontainer nicht über mehr als 300.000 Dateien verfügen. Sie können die Informationen aus der sys.database_files-Katalogansicht verwenden, um herauszufinden, welche Verzeichnisse im Dateisystem FILESTREAM-related-Dateien speichern. Dies kann durch Bereitstellung mehrerer Container verhindert werden. (Weitere Informationen finden Sie im nächsten Unterpunkt.)

  • Mit nur einer FILESTREAM-Dateigruppe werden alle Datendateien im selben Ordner erstellt. Die Dateierstellung einer sehr großen Anzahl von Dateien kann durch große NTFS-Indizes beeinflusst werden, die auch fragmentiert werden können.

    • Mehrere Dateigruppen können sich positiv auf diesen Vorgang auswirken (die Anwendung verwendet eine Partitionierung oder verfügt über mehrere Tabellen, wobei jede Tabelle in einer eigenen Dateigruppe gespeichert wird).

    • Mit SQL Server 2012 (11.x) und höheren Versionen können Sie über mehrere Container oder Dateien in einer FILESTREAM-Dateigruppe verfügen, und ein Roundrobin-Zuordnungsschema wird angewendet. Daher wird die Anzahl der NTFS-Dateien pro Verzeichnis kleiner.

  • Die Sicherung und Wiederherstellung kann mit mehreren FILESTREAM-Containern beschleunigt werden, wenn mehrere Volumes zum Speichern von Containern verwendet werden.

    SQL Server 2012 (11.x) unterstützt mehrere Container pro Dateigruppe und kann dies vereinfachen. Zum Verwalten einer größeren Anzahl von Dateien sind möglicherweise keine komplizierten Partitionierungsschemas erforderlich.

  • Wenn eine sehr große Anzahl von FILESTREAM-Containern in einer SQL-Instanz vorhanden ist, kann das Starten der Datenbanken mit vielen FILESTREAM-Containern sehr lange dauern, bis sie im FILESTREAM-Filtertreiber registriert werden. Durch die Verbreitung in mehreren verschiedenen Volumes können Sie die Startzeit der Datenbank verbessern.

  • Die NTFS-Masterdateitabelle (MFT) wird möglicherweise fragmentiert, was zu Leistungsproblemen führen kann. Die reservierte MFT-Größe hängt von der Volumegröße ab, sodass dieses Problem bei Ihnen auftreten könnte.

    • Sie können die MFT-Fragmentierung mit defrag /A /V C: überprüfen. Ersetzen Sie dabei „C:“ durch den tatsächlichen Volumenamen.

    • Sie können mehr MFT-Speicherplatz reservieren, indem Sie das fsutil-Verhalten mftzone 2 verwenden.

    • FILESTREAM-Datendateien sollten von der Überprüfung durch die Antivirussoftware ausgeschlossen werden.

      Hinweis

      Windows Server 2016 aktiviert Windows Defender automatisch. Stellen Sie sicher, dass Windows Defender so konfiguriert ist, dass FILESTREAM-Dateien ausgeschlossen werden. Wenn dies nicht der Fall ist, kann die Leistung bei Sicherungs- und Wiederherstellungsvorgängen beeinträchtigt werden.

      Weitere Informationen finden Sie unter Konfigurieren und Validieren von Ausschlüssen für Windows Defender Antivirus-Scans.