use*_*674 7 performance sql-server-2008 optimization datatypes
我的数据库非常大,并且以每天约 2000 万行的速度增长。我有很重要的时间戳数据,但大多数报告都是基于日期范围和周与周或月与月的比较。时间偶尔会显示在结果集中,但从未用作标准。鉴于此,我想我会通过单独的日期索引与组合的日期时间字段来节省大量的存储空间。我不确定我是否也会在我的选择中看到性能提升,或者拆分为 2 个字段是否有任何缺点。
Con*_*lls 13
出于报告目的,将字段拆分为日期和时间有一些好处。您可以意识到的一些可能的好处包括:
您可以制作一个日期参考表(与数据仓库中的日期维度非常相似),并将您细分为周、月等。这可以键入日期并与联接一起使用。
使用单独的时间字段可以更轻松地按时间进行分析。您还可以将时间四舍五入到适当的粒度并制作参考表。
尽管每个叶行仍然有一个 (IIRC) 6 字节的页面引用,但索引会稍微窄一些,因此总体上节省的空间并不大。
对于您的应用程序,您可能会从日期参考表中获得胜利(在日期上进行集群 PK 以进行高效查找),这可能比将周和月非规范化到大表上更有效。