pyodbc вызывает sp_unprepare после sp_prepexec. Влияет ли это на производительность параметризованных запросов?

В продолжение

SQLAlchemy + pymssql. Будут ли необработанные параметризованные запросы использовать тот же план выполнения?

Я переключился с pymssql на pyodbc и попытался получить параметризованные запросы, отправленные на SQL Server. pyodbc с драйвером Microsoft делает свое дело, но что-то мне кажется странным:

declare @p1 int
set @p1=6
exec sp_prepexec @p1 output,N'@P1 nvarchar(6),@P2 bigint,@P3 bigint,@P4 bigint',N'
                SELECT *
                FROM CC_sold
                WHERE id_contract =@P1
                    AND id_tip_cont=@P2
                    AND CC_sold.anul =@P3
                    AND CC_sold.luna =@P4
                ORDER BY CC_sold.anul, CC_sold.luna DESC
            ',N'176914',6,2016,9
select @p1
exec sp_unprepare 6

Мои опасения связаны с этим утверждением:

exec sp_unprepare 6

Если я правильно понимаю, это отменяет план выполнения запроса, и я не получу никакой оптимизации от параметризации запроса. Это тот случай?

Ответы на вопрос(1)

Ваш ответ на вопрос