Im Allgemeinen ist der teuerste Teil bei der Ausführung einer SQL-Abfrage das Erstellen des Ausführungsplans - das Identifizieren der Tabellen, die benötigt werden, das Bestimmen der besten Indizes (falls vorhanden), usw. Man kann dies als "Kompilieren" der Abfrage bezeichnen, wenn man so möchte.
Bei Verwendung einer parametrisierten Abfrage können Sie sie einmal vorbereiten und dann einfach verschiedene Zielwerte einsetzen. Da es sich um dieselbe Operation mit unterschiedlichen Daten handelt, ist es nicht erforderlich, den Ausführungsplan jedes Mal neu zu erstellen. Um das metaphorisch auszudrücken, ist dies wie das erneute Ausführen eines Programms mit einer anderen Konfigurationsdatei.
Wenn Sie die Werte jedoch anhängen, werden sie in die Abfrage fest codiert, sodass sie jedes Mal neu vorbereitet werden muss und Sie die Kosten für das Erstellen eines neuen Ausführungsplans für jede Iteration tragen. Wiederum mit der "Kompilieren"-Metapher ist das wie ein C-Programm mit all seinen fest codierten Konfigurationen - ändern Sie eine Einstellung und Sie müssen das Ganze neu kompilieren.
(Die andere Hauptkostenquelle, auf die Sie bei Masseneinfügungen stoßen können, ist das Aktualisieren der Indizes. Wenn Ihre Tabelle indiziert ist, sollten Sie versuchen, sie auszuschalten, Ihre Einfügungen durchzuführen und sie dann wieder einzuschalten, sodass sie nur einmal neu indiziert werden muss, anstatt nach jeder hinzugefügten Zeile.)