Triệu chứng
Giả định rằng bạn có một bảng chứa cột đối tượng lớn (LOB) trong Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 hoặc SQL Server 2014. Khi bạn Cập Nhật cột LOB với kích cỡ nhỏ hơn của LOB dữ liệu và cố gắng giành được không gian không sử dụng bằng cách dùng các phương pháp sau đây:
-
DBCC SHRINKDATABASE/DBCC SHRINKFILE
-
ALTER INDEX SẮP XẾP LẠI VỚI (LOB_COMPACTION = BẬT)
Trong trường hợp này, không thể khai hoang không gian trống.
Giải pháp
Vấn đề lần đầu tiên được khắc phục trong bản Cập Nhật tích lũy SQL Server sau đây.
Bản Cập Nhật tích lũy 2 cho SQL Server 2012 SP2 /en-us/help/2983175
Bản Cập Nhật tích lũy 11 cho SQL Server 2012 SP1 /en-us/help/2975396
Bản Cập Nhật tích lũy 13 cho SQL Server 2008 R2 SP2 /en-us/help/2967540
Bản Cập Nhật tích lũy 2 cho SQL Server 2014 /en-us/help/2967546
Bản Cập Nhật tích lũy 17 cho SQL Server 2008 SP3 /en-us/help/2958696
Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Cách giải quyết
Để làm việc xung quanh vấn đề này, hãy dùng giải pháp thay thế sau đây:
-
Xuất tất cả các hàng vào một bảng mới và di chuyển các hàng trở lại. Điều này tổ chức lại dữ liệu LOB và phát hành không gian không sử dụng.
-
Sử dụng DBCC SHRINKFILE với tùy chọn EMPTYFILE để di chuyển tất cả dữ liệu sang tệp dữ liệu mới được thêm vào và sau đó loại bỏ tệp dữ liệu cũ. Điều này đã tổ chức lại dữ liệu LOB tại đó bằng cách phát hành không gian không sử dụng được.
Thông tin Bổ sung
Ví dụ sau đây cho bạn biết không gian trống bằng cách dùng lệnh TSQL sp_spaceused ' table_name ' trước và sau khi bạn Cập Nhật cột LOB với kích cỡ nhỏ hơn dữ liệu LOB: trước khi bạn Cập Nhật:
Tên |
áng |
lĩnh |
lieäu |
index_size |
sử |
table_name |
1000 |
261072 KB |
261056 KB |
16 KB |
0 KB |
Sau khi bạn Cập Nhật:
Tên |
áng |
lĩnh |
lieäu |
index_size |
sử |
table_name |
1000 |
261072 KB |
199672 KB |
16 KB |
61384 KB |
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".