私たちのコードはCで書かれており、DBはInformixです。 ESQLプログラムでコード最適化を行っており、次のクエリが見つかりました。どちらが速いですか?col =?またはcol =?またはcol =? OR "where in(?、?、?)in in informix(.ec/esql)?
[テーブル] OR COL =? ...
where句の列数が動的に準備されます。我々はwhere句の準備を止め、更新を行い、そして戻って残りの準備を開始するために、上位の数のチェックを持っています。 UPPER_MARKが
"30" である場合(> = UPPER_MARKがwhere_parameter_count)
__
をupdate__実行__ clean_and_continue。/*
UPDATE [TABLE] SET [PRIMARY KEYのCOLUMN] = [NEW KEY] COLのIn ... */__
私たちは、WHEREを置き換えるものと考える。.. ORで再び準備を開始(?、?...)
これは「どこか」より速いでしょうか?
これを試したときに何を見つけましたか?どちらの方が速くなるか、あるいは何の違いも生じない可能性があります。 –
サンプルデータセット(100万レコード以上、OR句30個を含む場所)でテストした場合、違いはありません。 –
それは私を驚かさない。バージョンの変更のように、データベースサーバを大きく変更した場合、それは異なる可能性があります。また、コードを片方向に最適化すれば、大きな変化は別の方法がより速いことを意味する可能性があります。 –