Ich bin relativ neu zu asp.net und IIS Dinge, ich habe viele Apps mit anderen Technologien gemacht, aber noch nie ein solches Problem konfrontiert.Entity Framework-Abfrage braucht lange Zeit zum ersten Mal zu verbinden und auszuführen
Wir haben eine Testumgebung auf Azure mit allen erforderlichen virtuellen Maschinen eingerichtet, auf der die ASP.NET MVC 5.0-App auf einem Computer (IIS 7) gehostet wird, und eine andere Maschine, auf der SQL Server 2014 gehostet wird Code zuerst.
Das Problem ist, dass beim Öffnen einer Seite, die Datensätze aus einer Tabelle aus der Datenbank auflistet, es 15 Sekunden dauert, nur zum ersten Mal beim Öffnen der Website vom Chrome-Browser oder einem anderen Browser beim Navigieren Die Website braucht keine Zeit. Verlassen Sie die Website für 10 Minuten oder so, und kommen Sie zurück, das Problem passiert wieder, und es dauert nur 15 Sekunden wieder einmal.
tiefer Graben in der Ausgabe und nach Profilierung der Leistung, die den größten Teil der Zeit genommen, ist auf der ersten Zeit damit verbringen, die App die Datenbank berührt, zum Beispiel eine sehr einfache Abfrage:
model.Workflows.ToList();
Anscheinend Die Verbindung mit dem SQL-Server nimmt den größten Teil der Zeit in Anspruch. 15 Sekunden zum ersten Mal ist eine Menge Zeit zu akzeptieren, ich habe noch nie eine solche Verzögerung in irgendeiner Anwendung gesehen.
Das Objektdiagramm ist klein, es gibt nur 12 Tabellen mit sehr wenigen Datensätzen, sogar keine Datensätze für einige Tabellen, zum Beispiel enthält die Workflow-Tabelle nur 2 Datensätze. die Beziehungen sind kompliziert, aber nicht so viel.
Ich habe versucht, ohne Entity-Framework mit SqlConnection-Klasse verbinden, und es dauert 4 Sekunden zum ersten Mal auch, es ist viel besser, aber immer noch etwas falsch ist.
Mögliches Duplikat von [Entity Framework Code - Beim Start zu langsam] (http://stackoverflow.com/questions/28338613/entity-framework-code-first-too-slow-at-startup) –