【发布时间】:2010-09-06 17:07:16
【问题描述】:
我正在编写一个程序,它会在客户的特定当地时间发送一封电子邮件。我有一个 .NET 方法,它采用时区和时间以及目标时区并返回该时区的时间。所以我的方法是选择数据库中的每个不同的时区,使用该方法检查它是否是正确的时间,然后选择具有该时区的数据库中的每个客户端。
查询将类似于其中之一。请记住,结果集的顺序无关紧要,所以联合就可以了。哪个跑得更快,或者他们真的做同样的事情?
SELECT email FROM tClient WHERE timezoneID in (1, 4, 9)
或
SELECT email FROM tClient WHERE timezoneID = 1
UNION ALL SELECT email FROM tClient WHERE timezoneID = 4
UNION ALL SELECT email FROM tCLIENT WHERE timezoneID = 9
编辑:timezoneID 是 tTimezone 的外键,是一个主键 timezoneID 和 varchar(20) 字段 timezoneName 的表。
另外,我选择了WHERE IN,因为我不想打开分析器。
编辑 2:查询在 100 毫秒内处理 200k 行,所以到此我完成了。
【问题讨论】:
-
把它交给查询分析器
标签: sql optimization