Sümptomid
Oletame, et teil on tabel, mis sisaldab suurt objekti (LOB) veerg Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 või SQL Server 2014. Kui värskendate lob veergu väiksemate LOB-andmetega ja proovite kasutamata ruumi tagasi võtta järgmiste meetodite abil.
- DBCC SHRINKDATABASE / DBCC SHRINKFILE
- ALTER INDEX REORGANIZE WITH (LOB_COMPACTION = ON)
Sellisel juhul ei saa kasutamata ruumi tagasi võtta.
Lahendus
Probleem lahendati esmalt järgmises SQL Server koondvärskenduses.
SQL Server 2012 SP2 koondvärskendus 2 /en-us/help/2983175
SQL Server 2012 SP1 koondvärskendus 11 /en-us/help/2975396
koondvärskendus 13 SQL Server 2008 R2 SP2 /en-us/help/2967540
SQL Server 2014 koondvärskendus 2 /en-us/help/2967546
SQL Server 2008 SP3 koondvärskendus 17 /en-us/help/2958696
Teave SQL Server koondvärskenduste kohta
Iga uus koondvärskendus SQL Server sisaldab kõiki kiirparandusi ja kõiki turbeparandusi, mis olid kaasatud eelmise koondvärskenduse. Vaadake uusimaid SQL Server koondvärskendusi.
- Uusim koondvärskendus SQL Server 2012 SP2 jaoks
- Uusim koondvärskendus SQL Server 2012 SP1 jaoks
- Uusim koondvärskendus SQL Server 2008 R2 SP2 jaoks
- Uusim koondvärskendus SQL Server 2014 jaoks
- Uusim koondvärskendus SQL Server 2008 SP3 jaoks
Ajutine lahendus
Probleemi lahendamiseks kasutage järgmisi ajutisi lahendusi.
- Eksportige kõik read uude tabelisse ja teisaldage read tagasi. See korraldab LOB andmed ümber ja vabastab kasutamata ruumi.
- Kasutage suvandit DBCC SHRINKFILE koos suvandiga EMPTYFILE, et teisaldada kõik andmed äsja lisatud andmefaili ja seejärel eemaldada vana andmefail. See korraldab lobandmed seal ümber kasutamata ruumi vabastades.
Veel teavet
Järgmises näites kasutatakse kasutamata ruumi, kasutades selleks TSQL-käsku sp_spaceused "table_name" enne ja pärast LOB-veeru värskendamist väiksemate LOB-andmetega:
Enne värskendamist tehke järgmist.
| nimi | read | reserveeritud | andmed | index_size | kasutamata |
|---|---|---|---|---|---|
| table_name | 1000 | 261072 kB | 261056 kB | 16 kB | 0 kB |
Pärast värskendamist:
| nimi | read | reserveeritud | andmed | index_size | kasutamata |
|---|---|---|---|---|---|
| table_name | 1000 | 261072 kB | 199672 kB | 16 kB | 61384 KB |
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.