Bạn có thể sử dụng ALTER TABLE để bật tính năng nén trên bảng hiện có trong SQL Server.
Để làm điều này, bạn cần sử dụng REBUILD WITH trong khi chỉ định loại nén mong muốn của bạn.
Ví dụ
Đây là một ví dụ để chứng minh.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW); Trong trường hợp này, tôi đã tạo lại bảng bằng cách sử dụng nén hàng.
Phần sau sẽ xây dựng lại nó bằng tính năng nén trang.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE); Áp dụng tính năng nén cho một phân vùng duy nhất
Nếu bảng của bạn được phân vùng, bạn có thể chỉ định phân vùng đó để xây dựng lại bằng tính năng nén.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW); Cách loại bỏ nén
Bạn có thể loại bỏ phần nén bằng cách sử dụng NONE dưới dạng kiểu nén.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE); Bảng Columnstore
Nếu bạn đang sử dụng bảng columnstore (các bảng được lưu trữ bằng chỉ mục columnstore được phân cụm), thì các kiểu nén ở trên không áp dụng. Trong trường hợp này, các tùy chọn nén của bạn là COLUMNSTORE và COLUMNSTORE_ARCHIVE .
Hạn chế / Hạn chế
Không thể bật bảng hệ thống để nén.
Nếu bảng là một heap (bảng không có chỉ mục được phân cụm), thì thao tác xây dựng lại cho ONLINE chế độ sẽ là một luồng. Đối với hoạt động xây dựng lại heap đa luồng, hãy sử dụng OFFLINE chế độ.
Ngoài ra, khi sử dụng các bảng được phân vùng, các hạn chế sau sẽ được áp dụng:
- Bạn không thể thay đổi cài đặt nén của một phân vùng nếu bảng không có chỉ mục không được đánh dấu.
-
ALTER TABLE <table> REBUILD PARTITION ...cú pháp xây dựng lại phân vùng được chỉ định. -
ALTER TABLE <table> REBUILD WITH ...cú pháp xây dựng lại tất cả các phân vùng.