hugi1987
Goto Top

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

Content-ID: 182863

Url: https://administrator.de/contentid/182863

Ausgedruckt am: 26.11.2024 um 10:11 Uhr

AndreasHoster
AndreasHoster 30.03.2012 um 16:12:57 Uhr
Goto Top
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.
Anton28
Anton28 31.03.2012 um 16:15:17 Uhr
Goto Top
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