Die Funktion sys.dm_exec_describe_first_result_set_for_object
nimmt ein Objekt (z. B. eine gespeicherte Prozedur) und bestimmt die Eigenschaften der ersten Ergebnismenge.Wie ermittelt SQL Server, ob gespeicherte Prozeduren für "readonly" Anwendungsabsicht gültig sind?
Gibt es eine ähnliche Funktion, die mir zeigen kann, wenn eine Prozedur "readonly" ist, was darauf hinweisen könnte, dass sie mit ApplicationIntent=readonly
in der Verbindungszeichenfolge ordnungsgemäß verwendet werden kann?
AFAIK, nein. Beachten Sie, dass Procs dynamisches SQL enthalten oder verschachtelt sein können, wodurch es zu einer Herausforderung wird, festzustellen, ob der Proc tatsächlich Daten ändert. –
@DanGuzman, ich dachte, dass, wenn SQL Server weiß, wann es sicher ist, eine Prozedur auf einem sekundären Readonly-Server auszuführen, die diese Informationen auf irgendeine Weise den Clients zur Verfügung stellen könnte. Wenn 'applicationintent' nur ein Hinweis ist, dann frage ich mich, warum ich es nicht auf jede Verbindungszeichenfolge setzen möchte, in der Hoffnung, dass der Server schreibende Aufrufe auf die Secondaries setzt. – JoeGaggler