SQL Sever Dynami c SQL с параметрами выполнения - PullRequest
0 голосов
/ 26 мая 2020

В Oracle есть концепция динамического c SQL, известная как method 4, которая используется для создания динамических c SQL, когда количество связываемых переменных неизвестно во время компиляции. Это существенно позволяет SQL оставаться неизменным и повторно использовать план выполнения - известный как мягкий синтаксический анализ (в отличие от жесткого синтаксического анализа) во вселенной Oracle.

Глядя на динамику c SQL на SQL сервере кажется, что любые переменные связывания (т.е. параметры) должны быть известны во время компиляции, чтобы воспользоваться преимуществами повторного использования плана:

exec sp_executesql <sql statement>, <parameter definitions>, <parameter values>

В Oracle разница между жесткий и мягкий синтаксический анализ - это день и ночь с точки зрения производительности, и я предполагаю, что повторное использование кэшированного плана на SQL Server аналогично. Так есть ли способ для SQL сервера разрешить указывать параметры во время выполнения, чтобы разрешить повторное использование плана?

...