Programmatisch den vorgeschlagenen SQL Server-Abfrageplan für eine bestimmte Ausführung von SQL lesen?
Wenn ich diesen Befehl in SSMS ausführe:
set showplan_xml on
GO
exec some_procedure 'arg1', 'arg2','arg3'
GO
set showplan_xml off
GO
Ich erhalte eine XML-Ausgabe des gesamten Aufrufstapels, der an der Ausführung der Abfrage beteiligt ist, sowie alle vorgeschlagenen Indizes usw.
Wie könnte man das aus C # lesen?
(Ein Anwendungsfall kann darin bestehen, dies regelmäßig zu aktivieren und diese Ergebnisse in einer Produktionsumgebung zu protokollieren, um Indexvorschläge im Auge zu behalten.)