Hallo Joe,

direkter INSERT ist das Beste

SELECT COUNT(*) ist Murks, weil das nur heisst das jetzt noch keiner da war, beim tatsächlichen INSERT könnte sich das geändert haben.

Wenn bei vorhandenem Satz ein Update erfolgt, könnte man auch diesen zuerst probieren und wenn der schief geht den INSERT machen. Das ist dann minimal billiger, wenn der Satz eher vorhanden ist, aber komplizierter zu programmieren, wenn der Satz dann doch da ist, weil einer schneller war.

Wieder mal: mit der Peorformance, das ist meist viel zu kurz gedacht; Datenbankperformance ist dominiert von zwei Dingen:
1. Zugriffspfade (hat mit den Statements nix zu tun)
2. Sperrkonflikte (dauert bei Deadlock 60 sec.)
Zweiteres wird zu 99,9 % übersehen!!! Statt dessen wird gerne über Kleinigkeiten spekuliert und schwadroniert. Das einzige was hier zählt ist messen!!!

mfg

Dieter Bender