Đây là một Bảng FACT trong một Data WarehouseIndexing Performance bigint vs VARCHAR
Nó có một chỉ số tổng hợp như sau
ALTER TABLE [dbo].[Fact_Data]
ADD CONSTRAINT [PK_Fact_Data]
PRIMARY KEY CLUSTERED
(
[Column1_VarChar_10] ASC,
[Column2_VarChar_10] ASC,
[Column3_Int] ASC,
[Column4_Int] ASC,
[Column5_VarChar_10] ASC,
[Column6_VarChar_10] ASC,
[Column7_DateTime] ASC,
[Column8_DateTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
GO
Trong cấu trúc này, tất cả các varchar 10 cột có chỉ giá trị số. Tôi có thay đổi cấu trúc hàng 78 triệu để giữ BIGINT thay vì VARCHAR về truy vấn và lập chỉ mục không?
Bất kỳ lợi ích/hạn chế nào khác mà tôi nên cân nhắc?
đây là bảng thực tế trong kho dữ liệu của tôi. không có bảng nào sử dụng PK từ đây như là một FK. –
@Raj: ah, ok, điều đó giải thích một vài điều - bạn quên đề cập đến điều đó. Nhưng vẫn: bạn có các chỉ số không nhóm trên bảng này không? Những người chắc chắn sẽ cực kỳ quan trọng khi có một INT hoặc BIGINT chính/clustering key –
Bigint sử dụng 64 BITS không phải byte, tức là nó lớn gấp đôi, không phải 16 lần. – Yrlec