Tôi đã tạo một bảng có 650 cột Số (19,4). Khi tôi bật Nén trang, bằng cách chạy
ALTER TABLE fct.MyTable REBUILD WITH (DATA_COMPRESSION = PAGE);
tôi có
Msg 1975, Cấp 16,
Độ dài hàng 'Chỉ số PK_Mytable' của Trạng thái 1 vượt quá độ dài cho phép tối đa là '8060' byte.
nhưng 650 lần 9 byte chỉ là 5850 byte, khá xa so với giới hạn đã nêu là 8060 byte.
Máy chủ đang chạy Windows 2012 r2 với SQL Server 2016 SP1 CU2
Chi phí hàng khi sử dụng Nén trang là gì?
Đây là một số mã để hiển thị những gì tôi có nghĩa là:
/* test script to demo MSG 1975 */
DECLARE @sql NVARCHAR(max)='', @i INT =0
drop table if exists dbo.mytable;
SET @sql = 'Create table dbo.Mytable (MyTableID bigint not null
identity(1,1) primary key clustered, '
WHILE @i < 593 BEGIN
SET @sql += ' Column' + LTRIM(@i) + ' numeric(19,4) null, '
SET @i +=1
END
SET @sql += ' LastColumn int) '
--SET @sql += ' with (DATA_COMPRESSION = ROW) '
SET @sql += ' with (DATA_COMPRESSION = PAGE) '
SELECT @sql
EXEC sys.sp_executesql @sql
SELECT top 10000 * FROM dbo.MyTable MT
Nén hàng cũng thất bại, nhưng ở một số hàng khác nhau.