¿Hay alguna manera de averiguar el progreso de la DBCC SHRINKFILE
declaración?
Así es como lo estaba ejecutando
dbcc shrinkfile ('main_data', 250000)
Estoy ejecutando la declaración anterior en SQL Server 2005 y 2008.
[ACTUALIZACIÓN] Aquí está la consulta que ejecuté para verificar el progreso y el texto que se está ejecutando.
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
fuente
fuente
La respuesta de Aaron es acertada, pero me gustaría advertirle sobre la ejecución de la reducción del archivo de datos, ya que causa problemas de rendimiento horribles. Solía tener el código de reducción, así que sé de lo que estoy hablando. Consulte esta publicación de blog que escribí ayer que muestra lo que quiero decir y aconseja cómo efectuar una reducción sin realmente hacer una reducción: ¿Por qué no debe reducir sus archivos de datos?
¡Espero que esto ayude!
PD: Una cosa más para verificar si está tardando mucho y el porcentaje_completo no está aumentando: busque el bloqueo. Shrink esperará infinitamente las cerraduras que necesita.
fuente
fuente
La consulta a continuación le mostrará un resultado como este: rastrear el estado de reducción de dbcc
fuente
Al agregar mi propia versión para cualquier persona interesada, esto convierte las columnas de tiempo de milisegundos en minutos y segundos más legibles.
fuente
O simplemente puede ejecutar exec sp_who3.
fuente
sp_whoisactive: hay una columna "percent_complete"
fuente