Welches ist schneller "Wo Col=?oder col=?oder col=? "Oder "Wo Col in (?,?,?)" In C mit Informix (.ec / ESQL)?

StackOverflow https://stackoverflow.com/questions/7384294

  •  29-10-2019
  •  | 
  •  

Frage

Unser Code ist in C geschrieben und DB ist Informix. Wir führen eine Codeoptimierung im ESQL-Programm durch und haben die folgende Abfrage gefunden:

UPDATE [TABELLE] SET [PRIMARY KEY COLUMN]= [NEW KEY] WO COL=?ODER COL=?...

Die Anzahl der Spalten in der where-Klausel wird dynamisch vorbereitet.Wir haben eine Überprüfung der oberen Anzahl, um die Vorbereitung der where-Klausel zu beenden und ein Update durchzuführen. Kommen Sie dann zurück und beginnen Sie mit der Vorbereitung der verbleibenden.UPPER_MARK ist "30"

if (where_parameter_count>= UPPER_MARK)
__ Update ausführen__
__ clean_and_continue;/ * bereite dich wieder vor * / __

Wir haben darüber nachgedacht, das WHERE .. ODER durch WHERE ... IN zu ersetzen

UPDATE [TABELLE] SET [PRIMARY KEY COLUMN]= [NEUER SCHLÜSSEL] WHERE COL IN (?,? ...)

Wird dies schneller sein als "wo oder"?

War es hilfreich?

Lösung

Either syntax resolves down to the same thing as far as the Query Optimizer is concerned. It won't make any difference.

The only advantage to the in-list approach is that adding additional predicates won't change the logic, i.e.

x IN (a, b) AND y = z

and

x = a OR x = b AND y = z

are NOT the same thing.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top