我正在编写一个程序,在客户的特定当地时间发送一封电子邮件。我有一个 .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 行,所以现在我完成了。