同一个sql语句,在程序参过传参的方式执行慢,在查询分析器中快。
在查询分析器中,使用declare定时参数快,使用sql字符串拼慢。
例如在查询分析器中:
declare @starttime datetime
where createtime > @starttime 快
where createtime > '2014-1-1' 慢
------解决方案--------------------
上一下执行计划,初步预计隐式转换原因
------解决方案--------------------
有很多都可能会影响,执行计划中增加客户端统计信息看看客户端对于整个执行的影响。
------解决方案--------------------
declare @starttime datetime
where createtime > @starttime 快
where createtime > '2014-1-1' 慢
不会是参数的值不一样吧
------解决方案--------------------
前端程序中的写法具体是怎样的? 贴一下才好帮你分析喔.
------解决方案--------------------
sql:batchstring 我好像没见过这样的哦
------解决方案--------------------

1.sql BatchStarting--开始
2.sql BatchCompleted--结束
这两个一般来说是同一个语句的,除非你监控一个语句的开销,不然选一个就够了
------解决方案--------------------
目前分析,还是因为参数的类型隐式转换导致索引失效
------解决方案--------------------
程序也可以这样写:
declare @starttime datetime
set @starttime='2014-01-01'
where createtime > @starttime
------解决方案--------------------
sqlparameters要指定一个参数类型的,你指定的是啥?
------解决方案--------------------
每一个SQL首次执行的时候都是需要编译的,当然这是自动进行的,所以我们建议传参数,这样就不用每次编译,当然快了,
拼接的结果就是导致SQL总在变,总是第一次执行.