Symptomer
La oss si at du har en tabell som inneholder en kolonne for store objekter (LOB) i Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 eller SQL Server 2014. Når du oppdaterer LOB-kolonnen med mindre størrelse på LOB-data og prøver å frigjøre den ubrukte plassen ved hjelp av følgende metoder:
- DBCC SHRINKDATABASE / DBCC SHRINKFILE
- ALTER INDEX REORGANIZE WITH (LOB_COMPACTION = ON)
I denne situasjonen kan ikke den ubrukte plassen gjenvinnes.
Oppløsning
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Kumulativ oppdatering 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
Kumulativ oppdatering 2 for SQL Server 2014 /en-us/help/2967546
Kumulativ oppdatering 17 for SQL Server 2008 SP3 /en-us/help/2958696
Om kumulative oppdateringer for SQL Server
Hver nye kumulative oppdatering for SQL Server inneholder alle hurtigreparasjoner og alle sikkerhetsrettinger som fulgte med den forrige kumulative oppdateringen. Ta en titt på de nyeste kumulative oppdateringene for SQL Server:
- Den nyeste kumulative oppdateringen for SQL Server 2012 SP2
- Den nyeste kumulative oppdateringen for SQL Server 2012 SP1
- Den nyeste kumulative oppdateringen for SQL Server 2008 R2 SP2
- Den nyeste kumulative oppdateringen for SQL Server 2014
- Den nyeste kumulative oppdateringen for SQL Server 2008 SP3
Midlertidig løsning
Du kan omgå dette problemet ved å bruke følgende løsninger:
- Eksporter alle radene til en ny tabell, og flytt radene tilbake. Dette omorganiserer LOB-dataene og frigjør den ubrukte plassen.
- Bruk alternativet DBCC SHRINKFILE med EMPTYFILE for å flytte alle dataene til en datafil som nylig er lagt til, og fjern deretter den gamle datafilen. Dette omorganiserer LOB-dataene der ved å frigjøre ubrukt plass.
Mer informasjon
Følgende eksempel viser ubrukt plass ved hjelp av TSQL-kommandoen sp_spaceused «table_name» før og etter at du har oppdatert LOB-kolonnen med mindre størrelse på LOB-data:
Før du oppdaterer:
| navn | rader | reservert | data | index_size | ubrukt |
|---|---|---|---|---|---|
| table_name | 1000 | 261072 kB | 261056 KB | 16 kB | 0 kB |
Etter at du har oppdatert:
| navn | rader | reservert | data | index_size | ubrukt |
|---|---|---|---|---|---|
| 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».