Sintomi
Si supponga di avere una tabella che contiene una colonna LOB (Large Object) in Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 o SQL Server 2014. Quando si aggiorna la colonna line-of-business con dimensioni più piccole di dati LOB e si prova a recuperare lo spazio inutilizzato usando i metodi seguenti:
-
DBCC SHRINKDATABASE/DBCC SHRINKFILE
-
ALTER INDEX RIORGANIZZARE CON (LOB_COMPACTION = ATTIVATO)
In questo caso, non è possibile recuperare lo spazio inutilizzato.
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 2 per SQL Server 2012 SP2 /en-us/help/2983175
Aggiornamento cumulativo 11 per SQL Server 2012 SP1 /en-us/help/2975396
Aggiornamento cumulativo 13 per SQL Server 2008 R2 SP2 /en-us/help/2967540
Aggiornamento cumulativo 2 per SQL Server 2014 /en-us/help/2967546
Aggiornamento cumulativo 17 per SQL Server 2008 SP3 /en-us/help/2958696
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Soluzione alternativa
Per risolvere il problema, usare le soluzioni alternative seguenti:
-
Esportare tutte le righe in una nuova tabella e riportare le righe. Questo riorganizza i dati LOB e rilascia lo spazio inutilizzato.
-
Usare l'opzione DBCC SHRINKFILE con EMPTYFILE per trasferire tutti i dati in un file di dati appena aggiunto e quindi rimuovere il vecchio file di dati. Questo riorganizza i dati LOB rilasciando lo spazio inutilizzato.
Ulteriori informazioni
L'esempio seguente mostra lo spazio inutilizzato usando il comando TSQL sp_spaceused "table_name" prima e dopo l'aggiornamento della colonna line-of-business con dimensioni più piccole di dati LOB: prima di aggiornare:
nome |
righe |
riservato |
dati |
index_size |
inutilizzate |
table_name |
1000 |
261072 KB |
261056 KB |
16 KB |
0 KB |
Dopo l'aggiornamento:
nome |
righe |
riservato |
dati |
index_size |
inutilizzate |
table_name |
1000 |
261072 KB |
199672 KB |
16 KB |
61384 KB |
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".