Symptom
Anta att du har en tabell som innehåller en kolumn med många objekt i Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 eller SQL Server 2014. När du uppdaterar LOB-kolumnen med mindre storlek av LOB-data och försöker återta det outnyttjade utrymmet på följande sätt:
-
DBCC SHRINKDATABASE/DBCC SHRINKFILE
-
ALTER INDEX REORGANISERA MED (LOB_COMPACTION = PÅ)
I den här situationen går det inte att återta det outnyttjade utrymmet.
Lösning
Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Kumulativ uppdatering 2 för SQL Server 2012 SP2 /en-us/help/2983175
Kumulativ uppdatering 11 för SQL Server 2012 SP1 /en-us/help/2975396
Kumulativ uppdatering 13 för SQL Server 2008 R2 SP2 /en-us/help/2967540
Kumulativ uppdatering 2 för SQL Server 2014 /en-us/help/2967546
Kumulativ uppdatering 17 för SQL Server 2008 SP3 /en-us/help/2958696
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Lösning
Lös problemet med följande lösning:
-
Exportera alla rader till en ny tabell och flytta tillbaka raderna. Detta strukturerar om LOB-data och släpper oanvänt utrymme.
-
Använd alternativet DBCC SHRINKFILE med EMPTYFILE för att flytta alla data till en nyligen tillagd datafil och sedan ta bort gammal datafil. Detta strukturerar om LOB-data där genom att släppa oanvänt utrymme.
Mer information
I följande exempel visas det oanvända utrymmet med TSQL sp_spaceused kommandot table_name innan och när du uppdaterar LOB-kolumnen med mindre LOB-data: innan du uppdaterar:
Namn |
Sammanfattning |
monopolisera |
värde |
index_size |
skott |
table_name |
1000 |
261072 KB |
261056 KB |
16 KB |
0 KB |
När du har uppdaterat:
Namn |
Sammanfattning |
monopolisera |
värde |
index_size |
skott |
table_name |
1000 |
261072 KB |
199672 KB |
16 KB |
61384 KBIT |
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".