Symptomer
Anta at du har en tabell som inneholder et stort objekt (LOB)-kolonnen i Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 eller SQL Server-2014. Når du oppdaterer LOB-kolonne med mindre størrelsen på LOB-data og prøver å få tilbake den ubrukte plassen ved hjelp av følgende metoder:
-
DBCC SHRINKDATABASE / DBCC SHRINKFILE
-
ENDRE INDEKSEN OMORGANISER MED (LOB_COMPACTION = ON)
I denne situasjonen kan ikke gjenbrukes ubrukt plass.
Oppløsning
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Samleoppdatering 2 for SQL Server 2012 SP2/en-us/help/2983175
Kumulativ oppdatering 11 for SQL Server 2012 SP1/en-us/help/2975396
Kumulativ oppdatering 13 for SQL Server 2008 R2 SP2/en-us/help/2967540
Samleoppdatering 2 for SQLServer-2014/en-us/help/2967546
Kumulativ oppdatering 17 for SQL Server 2008 SP3/en-us/help/2958696
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:
Løsningen
Hvis du vil omgå dette problemet, bruker du følgende løsninger:
-
Eksporter alle radene i en ny tabell og flytte rader tilbake. Dette omorganiserer LOB-data og release ubrukt plass.
-
Bruk DBCC SHRINKFILE med alternativet EMPTYFILE til å flytte alle dataene til en datafil som nylig er lagt til, og deretter fjerne gamle datafilen. Dette omorganiserer dataene LOB det ved å frigi den ubrukte plassen.
Hvis du vil ha mer informasjon
Eksemplet nedenfor viser den ubrukte plassen ved hjelp av TSQL kommandoen sp_spaceused 'table_name' før og etter at du oppdaterer LOB-kolonne med mindre størrelsen på LOB-data:
Før du oppdaterer:
navn |
rader |
reservert |
data |
index_size |
ubrukte |
table_name |
1000 |
261072 KB |
261056 KB |
16 KB |
0 KB |
Etter oppdatering:
navn |
rader |
reservert |
data |
index_size |
ubrukte |
table_name |
1000 |
261072 KB |
199672 KB |
16 KB |
61384 KB |
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".