Die Entscheidung, eine Datenbank in verschiedene Dateigruppen aufzuteilen, sollte getroffen werden, nachdem die aktuelle Größe und das zukünftige Wachstum Ihrer Tabellen analysiert wurden. Meiner Meinung nach sollten Sie die Vor- und Nachteile sorgfältig abwägen, es sei denn, Sie haben eine große Datenbank oder Tabellen mit Millionen von Zeilen, da Sie möglicherweise mehr Leistungsprobleme verursachen, als Sie beheben.
Es gibt einige Szenarien, die unter bestimmten Voraussetzungen interessant sein könnten:
- 2 Dateigruppen: Daten und Index
- 3 Dateigruppen: Nur-Lese-Tabellen, Lese- / Schreibtabellen, Index
- mehrere Dateigruppen: schreibgeschützt, schreibgeschützt, Index, Schlüsseltabelle 1, Schlüsseltabelle 2, ...
Sie müssen Ihre Umgebung analysieren, um zu entscheiden, ob Dateigruppen bei Ihren Anforderungen an Wachstum, Nutzung und Leistung von SQL Server hilfreich sind.
Einige Schlüsselindikatoren für den Wechsel zu mehreren Dateigruppen (aus diesem Artikel ):
- Wenn die Festplattenwarteschlange Probleme mit der Anwendung und der Benutzererfahrung verursacht
- In diesem Fall sollten Sie zusätzliche Festplattenlaufwerke mit neuen Dateigruppen nutzen, in denen sich E / A-intensive Tabellen befinden
- Wenn bestimmte Tabellen 10% oder mehr der Datenbank ausmachen
- Wenn dies der Fall ist, sollten Sie diese besonders großen Tabellen in separate Dateigruppen auf separaten zugrunde liegenden Festplatten verschieben
- Abhängig von der Tabellengröße im Verhältnis zum Rest der Tabellen sollten Sie eine Dateigruppe für einzelne Tabellen erstellen.
- Wenn nicht gruppierter Index und Datenbereich in großen Tabellen gleich sind
- Wenn dies der Fall ist, sollten Sie die Daten und den Clustered-Index von den Nicht-Clustered-Indizes trennen
- Wenn ein fast gleicher Prozentsatz der schreibgeschützten und schreibgeschützten Daten in der Datenbank vorhanden ist
- Wenn dies der Fall ist, sollten Sie die schreibgeschützten Daten in eine separate Dateigruppe als schreibgeschützte Daten aufteilen
- Wenn nicht genügend Zeit für die Datenbankwartung zur Verfügung steht
- Wenn dies der Fall ist, sollten Sie die großen Tabellen in separate Dateigruppen auf verschiedenen zugrunde liegenden Festplatten aufteilen und die Wartung parallel durchführen
- Wenn sich das Geschäft oder die Anwendung erheblich ändern wird und die Daten viel schneller wachsen werden
- Wenn dies der Fall ist, sollten Sie mit den Benutzern zusammenarbeiten, um das potenzielle Wachstum zu verstehen
- Wenn sich archivierte Daten in derselben Datenbank befinden wie die Produktionsdaten
- Wenn dies der Fall ist, ziehen Sie separate Dateigruppen oder eine oder mehrere der in diesem Tipp beschriebenen Techniken in Betracht - Archivieren von Daten in SQL Server
Wenn Sie feststellen, dass Dateigruppen die Leistung Ihrer Datenbank verbessern können, schreiben Sie den Code und testen Sie den Prozess in einer Staging-Umgebung, bevor Sie die Änderungen auf Ihren Produktionsservern implementieren. Bereiten Sie einige Messungen vor, bevor Sie die Änderungen implementieren, und vergleichen Sie sie vorher / nachher. Da diese Prozesse sehr ressourcenintensiv und zeitaufwändig sein können, führen Sie diese Verfahren während eines Wartungszeitraums durch.
Vergessen Sie nicht, beim Erstellen neuer Objekte (Tabellen und Indizes) sicherzustellen, dass die Objekte in der richtigen Dateigruppe erstellt werden, um die erwartete Leistung sicherzustellen, und überprüfen Sie regelmäßig, ob sich die Datenbankobjekte in den richtigen Dateigruppen befinden und bei Bedarf korrekt sind.