F
Futzel
Hi,
kann mir jemand beim optimieren folgendes Codes helfen?
Dieser Code benötigt fürs migrieren von 300.000 Datensätze ca. 6 Stunden. Das ist mir viel zu lang.
Wie und Was kann ich tun, damit das Skript schneller wird?
kann mir jemand beim optimieren folgendes Codes helfen?
Dieser Code benötigt fürs migrieren von 300.000 Datensätze ca. 6 Stunden. Das ist mir viel zu lang.
Wie und Was kann ich tun, damit das Skript schneller wird?
PHP:
$dsn = "flsincsql";
$dsn2 = "flsincsqlneu";
$conn = odbc_connect($dsn, "", "") or die("Fehler beim Datenbankaufruf ".odbc_errormsg()." für ODBC-Quelle ".$dsn);
$conn2= odbc_connect($dsn2, "", "") or die("Fehler beim Datenbankaufruf ".odbc_errormsg()." für ODBC-Quelle ".$dsn2);
$sql = "SELECT * FROM Incidents";
$run = odbc_exec($conn, $sql);
$result = odbc_fetch_array($run);
if($result)
{
$count = 0;
do //Schleife über alle in der Datenbank gefundenen Einträge
{
//FKs ermitteln
$sqlincidentstatus_id = "SELECT ID FROM Incidentstatus WHERE Status='".$result["Incidentstatus"]."'";
$resultstatus_id = odbc_exec($conn2, $sqlincidentstatus_id);
$incidentstatus_id = odbc_result($resultstatus_id,"ID");
$sqlmitarbeiter_id= "SELECT ID FROM Mitarbeiter WHERE nimbus_id='".$result["Bearbeiter"]."'";
$resultmitarbeiter_id = odbc_exec($conn2, $sqlmitarbeiter_id);
$mitarbeiter_id = odbc_result($resultmitarbeiter_id,"ID");
$sqlkategorie_id = "SELECT ID FROM Kategorien WHERE Kategorie='".$result["Kategorie"]."'";
$resultkategorie_id = odbc_exec($conn2, $sqlkategorie_id);
$kategorie_id = odbc_result($resultkategorie_id,"ID");
$sqlakt_status_id = "SELECT ID FROM Akt_Status WHERE Status='".$result["Aktion"]."'";
$resultstatus_id=odbc_exec($conn2, $sqlakt_status_id);
$akt_status_id = odbc_result($resultstatus_id,"ID");
$sqlxxx_id = "SELECT ID FROM xxx_ID WHERE xxx_id='".$result["Incident"]."'";
$resultxxx_id = odbc_exec($conn2, $sqlxxx_id);
$xxx_id = odbc_result($resultxxx_id,"ID");
$sqlinsert = "INSERT INTO Incidents (Incidentstatus_ID,Bearbeiter_ID,Kategorien_ID,Aktion_ID,Incident_ID,Datum,Vermerk,Aufwand,Reklamation,Direktloesung,Rekla_gerechtfertigt)
VALUES ('".$incidentstatus_id."','".$mitarbeiter_id."','".$kategorie_id."','".$akt_status_id."','".$xxx_id."','".$result["Datum"]."','".$result["Vermerk"]."','".$result["Aufwand"]."','".$result["Reklamation"]."','".$result["Direktlösung"]."','".$result["Rekla gerechtfertigt"]."')";
$resultinsert=odbc_exec($conn2, $sqlinsert)or die("Datensatz konnte nicht migriert werden\n".odbc_error($conn2)." - ".odbc_errormsg($conn2)."");
$count++;
} while ( $result=odbc_fetch_array($run)); // Ende Schleife über alle in der Datenbank gefundenen Einträge
echo " Es wurden ".$count." Datensaetze nach Incidents migriert\n";
} else {
echo "Kein Eintraege in Tabelle Incidents zum migrieren vorhanden\n";
}
Zuletzt bearbeitet von einem Moderator: