【发布时间】:2010-05-11 07:17:27
【问题描述】:
我在我的数据库中为程序使用了许多动态查询,因为我的过滤器没有修复,所以我将@filter 作为参数并传入程序。
Declare @query as varchar(8000)
Declare @Filter as varchar(1000)
set @query = 'Select * from Person.Address where 1=1 and ' + @Filter
exec(@query)
就像我的过滤器包含表中的任何字段以进行比较。
会不会影响我的表现? 有没有其他方法可以实现这种类型的事情
【问题讨论】:
-
我们的项目中有复杂的查询,在“WHERE”子句中需要很多参数。我们的 dba 倾向于对此类情况进行动态查询,但我对此感觉不对。恕我直言,只要对参数嗅探采取必要措施,静态查询应该更快。有没有人对 KuldipMCA 的问题有好的答案,所以我可以让我们的高级 DBA 停止支持动态查询?
标签: sql tsql stored-procedures query-optimization