Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So optimieren Sie Entity Framework-Abfragen

Ja. Schreiben Sie die LINQ-Abfrage neu. Die meisten LINQ to Entities-Abfragen können auf viele verschiedene Arten geschrieben werden und werden unterschiedlich in SQL übersetzt. Da Sie weder LINQ noch SQL noch den Abfrageplan zeigen, ist das alles, was ich sagen kann.

Sie sind jedoch schlau, wenn Sie versuchen, das SQL direkt auszuführen. Die Abfragekompilierung kann auch Zeit in Anspruch nehmen, aber Sie haben dies ausgeschlossen, indem Sie festgestellt haben, dass die gesamte gemessene Zeit von SQL erfasst wird.

Versuchen Sie:

    var query = from pe in genesisContext.People_Event_Link
                where pe.P_ID == key
                from ev in pe.Event // presuming one to many
                select ev;

oder wenn pe.Event eins zu eins ist:

    var query = from pe in genesisContext.People_Event_Link
                where pe.P_ID == key
                select pe.Event;

    return query;