日期:2014-05-18  浏览次数:20461 次

存储过程内部有动态组合语句会影响存储过程性能吗
比如通用分页存储过程,就用到组合sql语句

------解决方案--------------------
建议您在执行字符串时,使用 sp_executesql 存储过程而不要使用 EXECUTE 语句。由于此存储过程支持参数替换,因此 sp_executesql 比 EXECUTE 的功能更多;由于 SQL Server 更可能重用 sp_executesql 生成的执行计划,因此 sp_executesql 比 EXECUTE 更有效。
------解决方案--------------------
会的,存储过程是预编译的,如果是用字符串组合,他预编译的只是这段存储过程的字符串组合过程,实际执行的sql他是不能预编译的,但是相较在应用程序里组合,那要快。