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.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage