【发布时间】:2015-07-14 01:47:32
【问题描述】:
我在 SQL Server 中有一个相当大的事实表,它按日期维度的外键分区。外键约束已启用且受信任。当我在 where 子句中添加这样的内容时:
"F_ClinicInvoiceTransaction".ServiceDateKey>=40908 and "F_ClinicInvoiceTransaction".ServiceDateKey<42247
我得到了分区消除。但是,当我简单地加入 ServiceDateKey 并过滤日期范围时:
"D_Calendar"."CalendarKey" ="F_ClinicInvoiceTransaction"."ServiceDateKey"
AND "D_Calendar".StartDT>='2012-01-01' and "D_Calendar".StartDT<'2015-10-01'
分区消除消失了。有没有办法根据这个连接来消除分区,或者我是否坚持对事实表中的值进行显式过滤?
【问题讨论】:
-
你的表分区在什么地方?有什么计划?数据模型?所有连接/where 谓词?
-
@NorbertvanNobelen ServiceDateKey
标签: sql-server tsql partitioning