Frage

Ich habe gerade etwas über das neue speicherte Verfahren von SP_Executesql erfahren. Ich mag die Tatsache, dass es eine Möglichkeit gibt, parametrisierten Code aus SQL Server auszuführen.

Ich frage mich jedoch, was der Unterschied zwischen der Verwendung der speicheren SP_Executesql -Prozedur ist, wenn Sie keine Parameter haben, im Vergleich zu dem direkten Aufruf direkt. Gibt es auch eine Leistungsimplikation?

exec('select * from line_segment')
exec sp_executesql N'select * from line_segment'

Gibt es auch einen Unterschied zwischen 2005 und 2008 oder behandeln sie diese gleich?

War es hilfreich?

Lösung

SP_Executesql unterstützt die Parametrisierung, während Exec nur eine Zeichenfolge akzeptiert.

Nur Leistungsunterschiede, die auftreten können, sind auf die Parametrisierung zurückzuführen, dh ein parametrisierter SP_Executesql -Aufruf hat eher einen wiederverwendbaren zwischengespeicherten Plan. Ein Exec -Anruf wird wahrscheinlich zu vielen Einzelnutzungsraumverschwendung im Plan -Cache führen.

Andere Tipps

Dies hat mir geholfen, das Interview zu knacken. Deshalb poste ich, um jemandem dafür zu helfen.

enter image description here

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top