Tôi có cơ sở dữ liệu MS SQL Server 2008 trên một máy chủ chia sẻ và tôi cần phải giảm dung lượng lưu trữ được sử dụng càng nhiều càng tốt. Bảng lớn nhất của tôi có định nghĩa sau:Hàng kích thước trên không
CREATE TABLE [stage](
[station_id] [smallint] NOT NULL,
[time_utc] [smalldatetime] NOT NULL,
[stage_mm] [smallint] NOT NULL,
CONSTRAINT [PK_stage] PRIMARY KEY CLUSTERED ([station_id] ASC,[time_utc] ASC)
Tôi đã cố gắng tìm ra số byte trung bình trên mỗi bản ghi trong bảng của tôi. Theo lý thuyết, kích thước phải là: 4B (tiêu đề hàng) + 2B (smallint) + 4B (smalldatetime) + 2B (smallint) là 12 byte.
Tuy nhiên, khi tôi chạy lệnh:
dbcc showcontig ('stage') with tableresults
Nó cho thấy: MinimumRecordSize = 15, MaximumRecordSize = 15 Vì vậy, theo SQL Server, các byte cho mỗi bản ghi là 15 và không 12 Số 15 byte mỗi bản ghi cũng có vẻ chính xác khi tôi xem tổng dung lượng đĩa được thực hiện bởi bảng và chia cho số hàng.
Điều gì đang chiếm thêm 3 byte?
Cảm ơn bạn đã giải thích. Vì vậy, nó xuất hiện trong trường hợp của tôi nó không thể giảm hàng trên không trong SQL Server 2008 đến ít hơn 7 byte. – jirikadlec2