Eri*_*ric 15 sql-server performance primary-key
对于你的数据库设计/性能专家.
如果您有一个用于跟踪会计年度财务数据的数据库,那么在X和Y之间进行日期类型搜索(例如PaymentDate,或者更好地保留基于int-key的表)是否更好/更高性能/更清晰在其中定义的会计年度期间,并使用付款日期和该密钥标记付款表,因此where子句是FiscalPeriodID = X的位置?
我确信对于较小的数据集而言并不重要,但我们假设这些数据将在数百万行中.
Eri*_*ric 20
我每天处理数百万行的仓库,我们发现智能日期键是可行的方法.格式为YYYYMMDD.所以要找到2008年的所有内容,你会做到:
select
*
from
gl
where
postdate between 20080101 and 20081231
Run Code Online (Sandbox Code Playgroud)
使用索引列,这非常快,甚至超过10亿行.这也指向一个日期表,因此我们可以查看星期几,月份名称或其他有关该联接日期的信息.
当然,这些仓库通常构建为支持SSAS多维数据集(OLAP数据库),因此日期表成为我们的日期维度.加入int比使用datetime要快得多.