Tôi đã có cơ sở dữ liệu SQL server 2005 dev là bản sao 30 GB trực tiếp. Chúng tôi đã xóa một số dữ liệu không cần thiết trong dev, điều này mang lại không gian tệp dữ liệu được sử dụng xuống còn 20GB. Vì vậy, chúng tôi có khoảng 33% không sử dụng.
Tôi cần phải lấy lại không gian, điều này sẽ cho phép chúng tôi có một DB dev thứ hai trên máy chủ (dựa trên phiên bản cắt giảm); tuy nhiên, tôi không thể lấy lại không gian, tôi đã làm như sau:
Kích thước ban đầu của tệp
SMS2_Data
là 30 GB.DBCC SHRINKFILE (N'SMS2_Data' , 0, TRUNCATEONLY)
theo dõi bởi
DBCC SHRINKFILE (N'SMS2_Data' , 19500)
Không có niềm vui. Tôi đã thử tạo một bản sao lưu, tạo một DB mới với kích thước ban đầu thấp sau đó khôi phục, không có gì vui vì kích thước ban đầu bị ghi đè. Cũng đã thử:
ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000)
Điều này sai lầm, nói:
SỬA ĐỔI FILE thất bại. Kích thước được chỉ định nhỏ hơn kích thước hiện tại.
Tôi đã thử 20800 và sau đó tiếp tục tăng đến 29000 (29 GB) và nó vẫn không cho phép tôi thay đổi.
Đã thực hiện thu nhỏ sau đó thay đổi chế độ phục hồi từ FULL
sang SIMPLE
và quay lại. Không có niềm vui.
Tôi nghĩ rằng đó là để làm với một số TEXT
lĩnh vực. Chúng tôi có khoảng 6 trên toàn hệ thống. Vì vậy, như một bài kiểm tra, tôi đã bỏ tất cả chúng và sau đó thu nhỏ tệp và vẫn không thay đổi.
Tùy chọn duy nhất còn lại là nhập lại dữ liệu sang DB khác. Điều này là không thực tế, vì nó sẽ phải được thực hiện trên DB trực tiếp, mang quá nhiều rủi ro. Chúng tôi thường xuyên lấy một bản sao của DB trực tiếp và ghi đè lên dev / test. Chúng tôi có khoảng 500 bảng. Tôi muốn một cách làm điều đó sẽ không có rủi ro xuất dữ liệu sang DB mới.
Tôi đã thử di chuyển dữ liệu sang một tệp khác và nó đã sao chép tất cả trừ 5% dữ liệu. Đây là những gì dẫn tôi thử và thả tất cả các cột văn bản.
Máy chủ ở chế độ tương thích 90, nhưng là SP2. Bây giờ tôi đã thực hiện 3 lần sau: reindex tất cả các bảng, sao lưu cơ sở dữ liệu, thu nhỏ tệp, thu nhỏ cơ sở dữ liệu. Vẫn không có niềm vui.
EXECUTE sp_spaceused
trả về:
database_name database_size unallocated space
SMS2Tests 31453.94 MB 13903.16 MB
reserved data index_size unused
16545568 KB 10602264 KB 4254360 KB 1688944 KB