So erhalten Sie den Ausführungsplan mit LINQ to SQL / ADO.NET

9

Ist es möglich, den Ausführungsplan einer LINQ to SQL- oder ADO.NET-Abfrage programmatisch zur Anzeige in Debug-Informationen zu erhalten? Wenn ja, wie?

    
Chad Moran 12.05.2011, 14:03
quelle

1 Antwort

3

Sicher, es gibt zwei Dinge, die du brauchst.

Eine benutzerdefinierte Implementierung von DbConnection , DbCommand und DbDataReader . Sie können damit alle an die Datenbank gesendeten SQL abfangen. Sie haben es im Grunde so eingerichtet, dass Sie einen Layer haben, der alle ausgeführten SQL-Protokolle protokolliert. (Wir planen, in den nächsten Monaten etwas in diesem Bereich zu öffnen, also bleibt dran)

Eine Möglichkeit, die Daten, die hier als Open Source zu verstehen sind, als sinnvoll darzustellen: Ссылка (siehe die Option Ausführungsplan einbeziehen)

Ein anderer Ansatz besteht darin, die Diagnose nachträglich durchzuführen, indem Sie den proc-Cache betrachten. sys.dm_exec_query_stats enthält zwischengespeicherte Plan-Handles, die Sie erweitern können.

    
Sam Saffron 14.05.2011, 14:03
quelle