手伝い仕事が続いています。
SQLの[Exists]や[Not Extists]は便利な機能です。
例えば、
Select Name, Ordered From Orders O
Where Exists (Select * From Customer C Where C.Name = O.Name)
これもサブクエリーの結果が大きい場合パフォーマンスが極端に落ちます。
前回と同じ手法を使いました。
すなわち、メインのSelect部分をワークテーブルに書き出し、
クライアントでサブクエリー部分を高速のレコードセットに変更し、
このテーブルとの照合をします。
結果は4分の処理時間が20秒弱にすることができました。
ところで今回はあるソフト会社で突然技術者が退社したらしく、
トラブルの山が残りました。
急遽応援を頼まれてこの一ヶ月およそ10個のバグ潰しをしました。
ちょっとしたコードの手直しは他に影響も少ないので、
修正すればそれで終わりですが、
ルーティンをそっくり変えるとなると、
実働システムでは慎重なテストが必要です。
まだ、2週間くらい必要かもしれません。