我正在编写一个程序,在客户特定的当地时间发送电子邮件.我有一个.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的外键,tTimezone是一个具有主键timezoneID和varchar(20)字段timezoneName的表.
此外,我去了,WHERE IN
因为我不想打开分析仪.
编辑2:查询在100毫秒内处理200k行,所以此时我已经完成了.