Симптоми
Приемете, че имате таблица, която съдържа колона с голям обект (висока точка) в Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 или SQL Server 2014. Когато актуализирате колоната за висока топка с по-малък размер на данните за висока топка и се опитате да получите обратно неизползваното място с помощта на следните методи:
-
DBCC SHRINKDATABASE/DBCC SHRINKFILE
-
ПРОМЯНА НА РЕОРГАНИЗАЦИЯТА НА ИНДЕКС С (LOB_COMPACTION = ВКЛ.)
В този случай не може да се върне неизползваното място.
Решение
Проблемът е коригиран първо в следващата сборна актуализация на SQL Server.
Кумулативна актуализация 2 за SQL Server 2012 SP2 /en-us/help/2983175
Кумулативна актуализация 11 за SQL Server 2012 SP1 /en-us/help/2975396
Кумулативна актуализация 13 за SQL Server 2008 R2 SP2 /en-us/help/2967540
Кумулативна актуализация 2 за SQL Server 2014 /en-us/help/2967546
Кумулативна актуализация 17 за SQL Server 2008 SP3 /en-us/help/2958696
Всяка нова сборна актуализация за SQL Server съдържа всички поправки и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте последните сборни актуализации за SQL Server:
Заобиколно решение
За да заобиколите този проблем, използвайте следните заобиколни решения:
-
Експортирайте всички редове в нова таблица и пренесете редовете назад. Това реорганизира данни за висока топка и отпуска неизползваното място.
-
Използвайте DBCC SHRINKFILE с EMPTYFILE опция, за да преместите всички данни към току-що добавен файл с данни и след това да премахнете стари файлове с данни. Това реорганизира данни за висока топка там, като освободи неизползваното място.
Повече информация
Следващият пример ви показва неизползваното място с помощта на командата TSQL sp_spaceused "table_name" преди и след като актуализирате колоната за висока топка с по-малък размер на данни за висока топка: преди актуализация:
Име |
редове |
запазени |
данни |
index_size |
неизползван |
table_name |
1000 |
261072 KB |
261056 KB |
16 KB |
0 KB |
След като актуализирате:
Име |
редове |
запазени |
данни |
index_size |
неизползван |
table_name |
1000 |
261072 KB |
199672 KB |
16 KB |
61384 KB |
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".