Ongelman ilmenemistapa
Oletetaan, että sinulla on taulukko, joka sisältää suuren objektin (LOB) sarakkeen Microsoft SQL Server 2008:ssa, SQL Server 2008 R2:ssa, SQL Server 2012:ssa tai SQL Server 2014:ssä. Kun päivität LOB-saraketta pienillä LOB-tiedoilla ja yrität vapauttaa käyttämätöntä tilaa seuraavasti:
- DBCC SHRINKDATABASE / DBCC SHRINKFILE
- ALTER INDEX REORGANIZE FUNKTIOLLA (LOB_COMPACTION = ON)
Tässä tapauksessa käyttämätöntä tilaa ei voida vapauttaa.
Ratkaisu
Ongelma korjattiin ensimmäisen kerran seuraavassa SQL Server kumulatiivisessa päivityksessä.
SQL Server 2012 SP2:n kumulatiivinen päivitys 2 /en-us/help/2983175
SQL Server 2012 SP1:n kumulatiivinen päivitys 11 /en-us/help/2975396
Kumulatiivinen päivitys 13, SQL Server 2008 R2 SP2 /en-us/help/2967540
SQL Server 2014:n kumulatiivinen päivitys 2 /en-us/help/2967546
Kumulatiivinen päivitys 17, SQL Server 2008 SP3 /en-us/help/2958696
Tietoja SQL Serverin kumulatiivisista päivityksistä
Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:
- SQL Server 2012 SP2:n uusin kumulatiivinen päivitys
- SQL Server 2012 SP1:n uusin kumulatiivinen päivitys
- SQL Server 2008 R2 SP2:n uusin kumulatiivinen päivitys
- SQL Server 2014:n uusin kumulatiivinen päivitys
- SQL Server 2008 SP3:n uusin kumulatiivinen päivitys
Vaihtoehtoinen menetelmä
Voit kiertää ongelman käyttämällä seuraavia vaihtoehtoisia menetelmiä:
- Vie kaikki rivit uuteen taulukkoon ja siirrä rivit takaisin. Näin LOB-tiedot järjestetään uudelleen ja vapauttaa käyttämätöntä tilaa.
- Käytä DBCC SHRINKFILE with EMPTYFILE -vaihtoehtoa, jos haluat siirtää kaikki tiedot juuri lisättyyn datatiedostoon ja poistaa sitten vanhan datatiedoston. Näin LOB-tiedot järjestetään uudelleen vapauttamalla käyttämätöntä tilaa.
Lisätietoja
Seuraavassa esimerkissä näet käyttämättömän tilan TSQL-komennon sp_spaceused table_name avulla ennen LOB-sarakkeen päivittämistä pienillä toimialakohtaisilla tiedoilla ja sen jälkeen:
Ennen päivittämistä:
| nimi | rivit | varattu | data | index_size | ei käytössä |
|---|---|---|---|---|---|
| table_name | 1000 | 261072 KB | 261056 KB | 16 kt | 0 kt |
Päivityksen jälkeen:
| nimi | rivit | varattu | data | index_size | ei käytössä |
|---|---|---|---|---|---|
| table_name | 1000 | 261072 KB | 199672 KB | 16 kt | 61384 kt |
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.