Síntomas
Suponga que tiene una tabla que contiene una columna de objeto grande (LOB) en Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 o SQL Server 2014. Cuando actualice la columna LOB con un tamaño más pequeño de datos LOB e intente recuperar el espacio sin usar con los métodos siguientes:
-
DBCC SHRINKDATABASE/DBCC SHRINKFILE
-
ALTER INDEX REORGANIZE WITH (LOB_COMPACTION = ON)
En esta situación, el espacio sin usar no se puede reclamar.
Resolución
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 2 para SQL Server 2012 SP2 /en-us/help/2983175
Actualización acumulativa 11 para SQL Server 2012 SP1 /en-us/help/2975396
Actualización acumulativa 13 para SQL Server 2008 R2 SP2 /en-us/help/2967540
Actualización acumulativa 2 para SQL Server 2014 /en-us/help/2967546
Actualización acumulativa 17 para SQL Server 2008 SP3 /en-us/help/2958696
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Solución alternativa
Para solucionar este problema, use las siguientes soluciones alternativas:
-
Exporte todas las filas a una nueva tabla y mueva las filas hacia atrás. De esta forma se reorganizan los datos LOB y se libera el espacio no usado.
-
Use DBCC SHRINKFILE con la opción EMPTYFILE para mover todos los datos a un archivo de datos recién agregado y, a continuación, elimine el archivo de datos antiguo. De esta forma, se reorganizan los datos de LOB y se libera el espacio no usado.
Más información
En el ejemplo siguiente se muestra el espacio no usado mediante el comando TSQL sp_spaceused ' TABLE_NAME ' antes y después de actualizar la columna LOB con el tamaño más pequeño de los datos LOB: antes de actualizar:
denomina |
DataRows |
Reserva |
data |
index_size |
sin usar |
table_name |
1000 |
261072 KB |
261056 KB |
16 KB |
0 KB |
Después de la actualización:
denomina |
DataRows |
Reserva |
data |
index_size |
sin usar |
table_name |
1000 |
261072 KB |
199672 KB |
16 KB |
61384 KB |
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".