1

Ich habe eine kleine C# -Anwendung, die mit Entity Framework 6 Textdateien in einige Datenbankstruktur zu analysieren.Entity Framework nur mit Timeout während INSERT

Im allgemeinen Dateiinhalt wird in 3 Tabellen analysiert:

Table1 --(1-n)-- Table2 --(1-n)-- Table3 

die Anwendung für Monate ohne Probleme auf Dev, Bühne und Produktionsumgebung gearbeitet.

Letzte Woche hielt es auf der Bühne und jetzt versuche ich herauszufinden, warum.

Eine Datei enthält ~ 100 Einträge Tabelle 1, ~ 2000 Einträge Tabelle 2 ~ 2000 Einträge Tabelle 3

.SaveChanges() nach jeder Datei aufgerufen wird.

bekomme ich folgende Timeout Ausnahme:

Timeout abgelaufen. Das Zeitlimit ist vor dem Abschluss des Vorgangs abgelaufen oder der Server reagiert nicht. Die Anweisung wurde beendet.

AutoDetectChangesEnabled ist auf false gesetzt.

Da es eine vierte Tabelle gibt, die ich eine update-Anweisung nach jeder Datei ausgeführt habe, gab es Transaktionen rund um die ganze Sache, so entfernte ich die 4. Tabelle und Transaktion Zeug, aber das Problem besteht weiter.

Um zu testen, ob es sich nur um ein Leistungsproblem handelt, habe ich Database.CommandTimeout = 120 ohne Auswirkung gesetzt, es läuft immer noch nach 2 Minuten in Timeout.

(Bevor die Ausgabe einer Datei in ca. 5 Sekunden gespeichert wurde, die absolut in Ordnung ist)

Wenn ich auf dem SQL Server suchen mithilfe von SQL Server Profiler ich nach .SaveChanges() sehen können folgende genannt:

SQL Server Profiler Nur die ersten paar INSERT Aussagen für Table3 gezeigt (immer zuerst 4-15 Anweisungen und alle von ihnen kurz nach .SaveChanges())

danach: keine neuen Einträge bis zum Timeout oc Kumpel.

Ich habe absolut keine Ahnung, was zu überprüfen ist, weil es keinen Fehler oder etwas ähnliches im Code gibt.

Wenn ich auf SQL Server schaue, gibt es absolut keinen Grund für die Verzögerung der Abfragen oder so (CPU, Speicher und Speicherplatz sind in Ordnung).

Würde mich freuen für jeden Kommentar dazu, wenn Sie mehr Infos möchten, lass es mich wissen.

Mit freundlichen Grüßen

+0

Einen Tag nachdem ich das geschrieben hatte, war das Problem für ~ 1 Woche verschwunden. seit ein paar Tagen ist es wieder da. Art von frustrierend, weil es kommt und geht, immer noch keine Ahnung, was diese Art von Verhalten verursachen kann. –

Antwort

Verwandte Themen