O pyodbc chama sp_unprepare após sp_prepexec. Isso afeta o desempenho de consultas parametrizadas?
Na continuação de
SqlAlchemy + pymssql. As consultas parametrizadas brutas usarão o mesmo plano de execução?
Mudei de pymssql para pyodbc e tentei enviar consultas parametrizadas ao SQL Server. pyodbc com driver da Microsoft faz o truque, mas algo me parece estranho:
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
Minhas preocupações estão relacionadas a esta afirmação:
exec sp_unprepare 6
Se eu entendi direito, isso cancela o plano de execução da consulta e não receberei nenhuma otimização da parametrização da consulta. É esse o caso?