这是在一个数据仓库索引性能BigInt有VS的VarChar
它有一个综合指数如下
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
在这种结构中,所有的VARCHAR 10列具有的事实表仅数值。在查询和索引方面,改变这个7800万行结构来保存BIGINT而不是VARCHAR对我来说会是有益的吗?
任何其他好处/缺点,我应该考虑什么?
这是我的数据仓库中的一个事实表。没有使用PK作为FK的表格。 – 2009-10-21 21:28:41
@Raj:啊,好吧,这解释了一些事情 - 你忘了提到这一点。但仍然:你在这张桌子上也有非聚集索引吗?那些肯定会有一个单一的INT或BIGINT主/集群密钥 – 2009-10-22 05:28:49
bigint使用64位非字节,即它是两倍大,而不是16倍。 – Yrlec 2009-11-03 10:45:17