Gibt es eine Möglichkeit, den Fortschritt der DBCC SHRINKFILE
Aussage herauszufinden ?
Hier ist, wie ich es betrieben habe
dbcc shrinkfile ('main_data', 250000)
Ich führe die obige Anweisung für SQL Server 2005 und 2008 aus.
[UPDATE] Hier ist die Abfrage, die ich ausgeführt habe, um den Fortschritt und den Text zu überprüfen, der ausgeführt wird.
select T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id)
, R.cpu_time, R.total_elapsed_time, R.percent_complete
from sys.dm_exec_requests R
cross apply sys.dm_exec_sql_text(R.sql_handle) T
sql-server
sql-server-2005
sql-server-2008
shrink
dance2die
quelle
quelle
Aarons Antwort ist genau richtig, aber ich möchte Sie davor warnen, Datendateischrumpfen auszuführen, da dies zu schrecklichen Leistungsproblemen führt. Früher besaß ich den Verkleinerungscode, also weiß ich, wovon ich spreche. Checkout this blog post Ich habe gestern geschrieben, dass zeigt, was ich meine und wie Sie eine Verkleinerung durchführen können, ohne tatsächlich eine Verkleinerung vorzunehmen: Warum Sie Ihre Datendateien nicht verkleinern sollten
Hoffe das hilft!
PS Noch eine Sache, um zu überprüfen, ob es lange dauert und der Prozentsatz_komplett nicht zunimmt - achten Sie auf Blockierung. Shrink wartet unendlich lange auf die benötigten Sperren.
quelle
quelle
Die folgende Abfrage zeigt das Ergebnis wie folgt : Verfolgen Sie den dbcc-Verkleinerungsstatus
quelle
Durch Hinzufügen meiner eigenen Version für alle Interessierten werden die Millsekunden-Zeitspalten in besser lesbare Minuten und Sekunden umgewandelt.
quelle
Oder Sie können einfach exec sp_who3 ausführen.
quelle
sp_whoisactive - es gibt die Spalte "percent_complete"
quelle