Vinzenz Mai: Performance bei Textzerlegung

Beitrag lesen

Hallo,

Mehr Sinn macht es in meinen Augen, wenn ich den sqlsrv_prepare-Befehl vor die Schleife setze.

ja klar. Sonst ist der ganze Vorteil zum Teufel.

Dann ist nur das Problem, dass er den $params-array noch nicht kennt.

Welches DBMS setzt Du ein?
Ich greife per SQLManager Lite auf eine MsSql-Db zu. Die DB selbst wird aber von unserer IS verwaltet, was die nutzen müsste ich nachfragen.

Ich kenne Deine DB-Klasse nicht. Typischerweise werden innerhalb der Schleife die Werte an die Parameter gebunden. Ob Deine Klasse hier einen Arrayzugriff erlaubt oder nicht, das kann ich von außen nicht sehen. Da Deine Parameter sowieso als Einzelvariablen vorliegen, sehe ich hier kein prinzipielles Problem. In Pseudocode

Setze Prepare-Anweisung mit dem Prepared Statement und Platzhaltern ab
Solange es Datensätze gibt
    Binde die Daten an die Platzhalter
    Führe das Prepared Statement mit den gebundenen Daten aus
Ende Solange

Für den Zugriff auf MSSQL verwende ich bevorzugt .NET (typischerweise in Nicht-Web-Umgebungen) ;-)

Freundliche Grüße

Vinzenz