Zum Inhalt springen

SQL-Insert dauert sehr lange....


murat1895

Empfohlene Beiträge

Moinsen!

Ich verwende folgenden C# und SQL Code um einen Datenbank-Eintrag zu erledigen.

            string sql = "insert into runde (akt_rundenzeit, akt_runde, zeitstempel, Event_nr, Team_id) values (@neueRundenzeit,@neueRunde,@neuerZeitstempel,@Event_nr,@Team_id)";


            using (MySqlCommand cmd = new MySqlCommand(sql, connection))

            {

                cmd.Parameters.AddWithValue("@neueRundenzeit", neueRundenzeit);

                cmd.Parameters.AddWithValue("@neueRunde", neueRunde);

                cmd.Parameters.AddWithValue("@neuerZeitstempel", neuerZeitstempel);

                cmd.Parameters.AddWithValue("@Event_nr", eventNr);

                cmd.Parameters.AddWithValue("@Team_id", team_nr);

                cmd.ExecuteNonQuery();


            }

Das merkwürdige ist, das dieser Eintrag bei bereits 10.000 vorhandenen Datensätzen in der Tabelle Runde 159 Millisekunden dauert.

Gibt es Möglichkeiten, dieses zu beschleunigen? Eine komplexe Select-Anweisung, die unter anderem auf diese Tabelle zugreift, und mit eineren Tabellen verknüpft wird, brauch gerade einmal 11 Millisekunden, um einen entsprechenden Datensatz herauszufiltern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, aber wenn ich hier eine für mich ernst gemeinte Frage stelle, aus der eigentlich eindeutig hervorgehen sollte, dass man den Unterschied zwischen insert und select kennt, fühle ich mich mit einer solchen Frage leicht auf den Arm genommen.

Ich frage mich nur, warum die Zeit für das Einfügen eines einfachen Datensatzes in eine Tabelle so hoch ist und ob man dieses irgendwie minimieren kann.

Ein Selektieren der Daten würde laut meiner Logik viel mehr Aufwand an der Datenbank bedeuten. Da hier in den entsprechenden Daten gefiltert wird, um Einen entsprechenden Datensatz auszuwählen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, aber wenn ich hier eine für mich ernst gemeinte Frage stelle, aus der eigentlich eindeutig hervorgehen sollte, dass man den Unterschied zwischen insert und select kennt, fühle ich mich mit einer solchen Frage leicht auf den Arm genommen.

Ich frage mich nur, warum die Zeit für das Einfügen eines einfachen Datensatzes in eine Tabelle so hoch ist und ob man dieses irgendwie minimieren kann.

Ein Selektieren der Daten würde laut meiner Logik viel mehr Aufwand an der Datenbank bedeuten. Da hier in den entsprechenden Daten gefiltert wird, um Einen entsprechenden Datensatz auszuwählen.

Deine Antwort zeigt, dass du es eben nicht verstanden hast. Grundsätzlich ist lesen schneller als schreiben. Je nach Datenbankschema und Optimierung sind hier sehr sehr deutliche Unterschiede möglich, was man beispielsweise durch CQRS auf die Spitze treiben kann. 159ms ist nicht wahnsinnig schnell, aber auch nicht übermäßig langsam. Um die Frage überhaupt beantworten zu können müsste man erstmal wissen wie und unter welchen Voraussetzungen du das ganze betreibst. Aber zu sagen mein Insert ist zu langsam, weil mein Select schnell ist, ist ungefähr so wie zu fragen - meine Reifen sind platt, warum ist mein Auto grün.

Bearbeitet von SilentDemise
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Monate später...
vor 19 Minuten, feuerjinn sagte:

Gilt ebenfalls nur beim Suchen und nicht beim Schreiben.

Die Geschwindigkeit einer insert-Anweisung hängt im Wesentlichen von der Anzahl der Indizes auf der Tabelle ab. Je mehr Indizes, desto langsamer die Ausführung. Da diese nach jedem insert aktualisiert werden.

Jedoch bringen diese Performance beim Lesen, dass ist richtig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...