拉数据的最佳方式

时间:2014-04-08 15:25:59

标签: sql sql-server

我们有一个SQL表,用于存储创建电子邮件的日期,然后是另一个表,其中提供了有关该电子邮件的详细信息(用于编写电子邮件的时间,在草稿模式中的时间等)。两个表之间的连接是通过一个键。

问题是,它只存储创建电子邮件的日期(输入系统),并且只有在完成(发送)电子邮件时才将数据写入表中。因此,对于昨天,您当天可能会完成1000封电子邮件,但其创建日期和时间会有所不同。此外,创建日期时间列仅在一个表中。

我现在的方法是加入两个表,在where子句中,我通过将电子邮件写入时间的秒数添加到创建的日期时间来计算完成日期。

 WHERE DATEADD(s, ISNULL(a.emailwritetime,0), b.CreateDateTime) BETWEEN @start AND @end

(@ start和@end通常是前一天)

这些表有数百万行,所以预计这需要一段时间才能运行并且它会点击生产服务器来提取数据。任何人都可以提出更好/更清晰的数据提取方式吗?如果你不知道昨天创造了什么?

1 个答案:

答案 0 :(得分:0)

您应该使用computed column作为您正在寻找的价值。