クライアントの特定の現地時間に電子メールを送信するプログラムを作成しています。タイムゾーンと時刻と宛先タイムゾーンを取り、そのタイムゾーンの時刻を返す .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 は、主キー timezoneID と varchar(20) フィールド timezoneName を持つテーブルである tTimezone への外部キーです。
また、WHERE IN
アナライザーを開けたくないので、これにしました。
編集 2:クエリは 100 ミリ秒未満で 20 万行を処理するため、この時点で完了です。