Liebe Grüße
Karin
hoffe das hilft dir weiter :
WICHTIG !!!
Vorher den TASK 'sqlmangr.exe' killen
danach folgendes machen :
Sometimes you end up with a really bloated transaction log, and you quickly
want to empty it. This is one way of doing it.
A not too well known way of quickly shrinking the logfile is to just delete
the file. This is a very fast way, but it unfortunatly requires you to
disconnect all users from the database. Using sp_detach_db, you detach the
database from the server. Like this:
(WARNING! This will take your database offline. Don't do this on a
production system!)
EXEC sp_detach_db 'pubs'
After detaching the database, rename the logfiles if you want to save them,
or just delete them. When this is done, you simply re-attach the database,
with the sp_attach_db procedure, like this:
EXEC sp_attach_db 'pubs','d:\MSSQL\data\pubs.mdf'
This tells the server to attach the database using the file you listed. If
you have multiple files, list them here. The server will comlain, but still
execute the procedure. The output is:
Device activation error. The physical file name 'd:\MSSQL\data\pubs_log.ldf'
may be incorrect.
New log file 'd:\MSSQL\data\pubs_log.LDF' was created.
Tada! Now you have a very small log file. Increase it to the desired size,
and you're ready.
"Uwe Rücker" <u...@btnet.de> schrieb im Newsbeitrag
news:0fbb01c233e3$39231b30$9ae62ecf@tkmsftngxa02...
das verkleinern der Datendateien ist effektiv ein verlagern von Seiten
und Extents vom Ende der Datei an den Anfang, mit anschließendem
Abschneiden von freiem Speicherplatz am Ende.
Es wird keine Defragmentierung der Seiten durchgeführt! Somit kann bei
einer extrem fragmentierten Datenverteilung in den Seiten der Erfolg von
Shrinfile recht gering ausfallen - in deinem Fall wäre die
Fragmentierung aber schon Rekordverdächtig.
Was hast Du denn mit den Daten gemacht?
Der oft schnellste und effektivste Weg ist das Exportieren und wieder
Importieren. Hier kann es sinnvoll sein Scripte für Im-und Export, sowie
für das Erzeugen der Objekte und Berechtigungen zu erstellen um diesen
Vorgang regelmäßig zu wiederholen - z.B. nach der Archivierung großer
Teile der Daten.
Allerdings ist die Datenbank während dieser Zeit natürlich nicht
nutzbar.
Dann kannst Du es noch mit Online Defragmentieren versuchen, wobei SQL 7
hier nicht soviel bietet wie 2000.
Du kannst eigentlich nur mit DROP INDEX, CREATE INDEX oder DBCC REINDEX
versuchen die Daten neu zu ordnen, wobei einfache Tabellen umgekehrt
geclustered und wieder entclustered werden müssten, sofern Du flat
Tables verwendest.
Während dieser Online Defragmentierung ist die DB allerdings auch nur
eingeschränkt nutzbar, so dass man hier einfach testen und abwägen muss.
HTH
--
Helge C. Rutz
MVP (SQL Server)
dc soft GmbH