MSSQL - Aufteilung in mehrere .mdf Dateien
Hallo,
wir besitzen eine MSSQL Datenbank (MSSQL 2005), welche mittlerweile fast 200GB groß ist.
Die Datenbank befindet sich dabei in einer einzigen .mdf Datei.
Teilweise kommt es zu Performanceproblemen.
Nun ist die Überlegung, die Datenbank in mehrere .mdf Dateien zu verteilen, z.B. zu je 50GB.
Habt ihr hierzu Erfahrungen und könnt mir erklären wie ich dies durchführen kann?
Vielen Dank
Viele Grüße
hugi
wir besitzen eine MSSQL Datenbank (MSSQL 2005), welche mittlerweile fast 200GB groß ist.
Die Datenbank befindet sich dabei in einer einzigen .mdf Datei.
Teilweise kommt es zu Performanceproblemen.
Nun ist die Überlegung, die Datenbank in mehrere .mdf Dateien zu verteilen, z.B. zu je 50GB.
Habt ihr hierzu Erfahrungen und könnt mir erklären wie ich dies durchführen kann?
Vielen Dank
Viele Grüße
hugi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182863
Url: https://administrator.de/contentid/182863
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
2 Kommentare
Neuester Kommentar
Wir haben inzwischen an unserer großen Datenbank 70 16GB Dateien dran, funktioniert ohne Probleme.
Wobei wir schon mit mehreren Dateien angefangen haben und statt Autogrowth dann neue Files mit Alter Database hinzufügen.
Wenn man schon eine große Datei hat, gibt es meines wissens nach keine andere Möglichkeit als ein Backup, Datenbank löschen und ein Restore in mehrere Dateien zurückspielen (habe ich jetzt direkt so noch nie gemacht).
Beim Restore im GUI kann man mehrere Dateien angeben, wenn man es über TSQL Befehle machen will (mögliche weitere Optionen habe ich jetzt mal weggelassen)
RESTORE DATABASE MyNwind
FILE = 'MyNwind_data_1',
FILE = 'MyNwind_data_2',
FILE = .... (Beliebig viele weitere)
FROM MyNwind_1
SQL Server füllt die dann halbwegs gleichmässig aus. Und MDF ist nur eine Datei, der Rest bekommt ndf als Erweiterung.
Wobei wir schon mit mehreren Dateien angefangen haben und statt Autogrowth dann neue Files mit Alter Database hinzufügen.
Wenn man schon eine große Datei hat, gibt es meines wissens nach keine andere Möglichkeit als ein Backup, Datenbank löschen und ein Restore in mehrere Dateien zurückspielen (habe ich jetzt direkt so noch nie gemacht).
Beim Restore im GUI kann man mehrere Dateien angeben, wenn man es über TSQL Befehle machen will (mögliche weitere Optionen habe ich jetzt mal weggelassen)
RESTORE DATABASE MyNwind
FILE = 'MyNwind_data_1',
FILE = 'MyNwind_data_2',
FILE = .... (Beliebig viele weitere)
FROM MyNwind_1
SQL Server füllt die dann halbwegs gleichmässig aus. Und MDF ist nur eine Datei, der Rest bekommt ndf als Erweiterung.
Hallo,
da Du nichts üner Deine Umgebung schreibst, ist es schwierig hier den richtigen Tipp zu geben.
Wenn die Platte der Engpass ist, wird es Dir nichts nützen, aus der 200 GB Datei 5 oder 8 je 20 GB zumachen.
Perforemance Probleme sollten genau analysiet werden. Mal schnell aufteilen weil "oh gott oh gott" die Datei 200 GB groß ist, wird nichts bringen.
Bei mir sind mehrere DB-Files mit bis zu 1 TB im Einsatz und das ganze läuft dank eines performanten Speichersubsystems sehr gut.
Also bitte schreib etwas mehr zu Deiner Umgebung.
Severtyp ?
Prozessor ?
Hauptspeicher ?
Betriebssystem incl Servicespacks ?
MSSQL 2005, Service Pack ?
Art der Anwendung
Anzahl der Plattens, Arrays im System
und so weiter und so fort.
Dann kann Dir auch geholfen werden.
Es kann genauso an fehlenden, falschen Indizies liegen.
Also Du siehst, Performance ist ein weites Feld,
Gruß
Anton
da Du nichts üner Deine Umgebung schreibst, ist es schwierig hier den richtigen Tipp zu geben.
Wenn die Platte der Engpass ist, wird es Dir nichts nützen, aus der 200 GB Datei 5 oder 8 je 20 GB zumachen.
Perforemance Probleme sollten genau analysiet werden. Mal schnell aufteilen weil "oh gott oh gott" die Datei 200 GB groß ist, wird nichts bringen.
Bei mir sind mehrere DB-Files mit bis zu 1 TB im Einsatz und das ganze läuft dank eines performanten Speichersubsystems sehr gut.
Also bitte schreib etwas mehr zu Deiner Umgebung.
Severtyp ?
Prozessor ?
Hauptspeicher ?
Betriebssystem incl Servicespacks ?
MSSQL 2005, Service Pack ?
Art der Anwendung
Anzahl der Plattens, Arrays im System
und so weiter und so fort.
Dann kann Dir auch geholfen werden.
Es kann genauso an fehlenden, falschen Indizies liegen.
Also Du siehst, Performance ist ein weites Feld,
Gruß
Anton