私たちのコードは C で書かれており、DB は Informix です。ESQL プログラムでコードの最適化を行っているところ、次のクエリが見つかりました。
UPDATE [TABLE] SET [PRIMARY KEY COLUMN] = [NEW KEY] WHERE COL = ? または COL = ? ...
where 句の列数は動的に準備されます。where 句の準備を停止して更新を実行し、戻って残りの準備を開始する上限カウント チェックがあります。UPPER_MARK は「30」です
if ( where_parameter_count >= UPPER_MARK )
__ update を実行
__ __ clean_and_continue; /* 準備を再開します */__
WHERE .. OR を WHERE ... IN に置き換えることを考えました
UPDATE [TABLE] SET [PRIMARY KEY COLUMN] = [NEW KEY] WHERE COL IN (?, ? ...)
これは「どこか」よりも高速ですか?