Ich habe nun verschiedenes getestet und sehe mir die Ergebnisse an:
Test2,1,8,7: Sind deutlich langsam. Sollte man so keinesfalls verwenden, wenn Geschwindigkeit ein Kriterium sein soll.
Nur ParamByName in der schleife (Test7) ergibt für sich keinen Geschwindigkeitsvorteil, auch nicht mit Prepare verbunden (Test8); Und ergibt nur Sinn, wenn man diese mit Transaction verbindet (Test9). Mit Format() (Test2) sollte man bzgl. Schnelligkeit eher vorsichtig sein, diese war sogar fast dreimal solangsam wie Test1 (Insert,Exec direkt hintereinander).
Test3,4: Insert mit Transactionen gehen bereits erheblich schneller und können/sollten verwendet werden. Dabei spielt es keine Rolle ob "begin transaction / commit) innerhalb der Funktion oder außerhalb ist.
Test9,6,5: Sind nochmal um ca. 0,2 % schneller als Test3 und 4. Variablen direkt in die
SQL Anweisung zu schreiben (Test5), war das schnellste; Gleiches mit Transaction (Test6) ist sogar einen Tick langsamer und wird nicht wirklich benötigt.