2017-07-05 1 views
1

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?

+1

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

+0

@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

Antwort

0

Interessante Frage. SQL Server markiert Objekte nicht als schreibgeschützt, das auf Benutzerrechtebene festgelegt ist. Der ApplicationIntent = readonly scheint sich mit einer Situation zu befassen, in der Sie Verfügbarkeitsgruppen ausführen und in der Regel ein schreibgeschütztes Replikat für die Berichterstellung haben. Es würde dann zu diesem Server routen.

Read Only Application Intent

Verwandte Themen