我有一个名为LOGS2016的视图,该视图是从12个单独的"月"命名约定表:LOG201601,LOG201602等等。
要进行正常的日期范围查找,我通常会从LOGS2016中选择所有记录,并在每条记录上执行DATEADD功能。显然不是最快的方法。
我的过滤器只是试图从今天开始发现之前30天的活动",所以我想要做的只是使用2个表来覆盖这个查询,而不是全年的VIEW是12张桌子的记录。
有没有办法在当月的表和上个月的表中进行加入或联合而不是使用年度VIEW? (如果需要,我可以使用PHP获取当前年份和月份)
我尝试过(并且仍然很慢):
-- This takes 11 Seconds
SELECT * FROM LOG201612 WITH (NOLOCK)
UNION ALL
SELECT * FROM LOG201701 WITH (NOLOCK)