码迷,mamicode.com
首页 > 其他好文 > 详细

参数化查询速度慢

时间:2015-05-09 01:23:43      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:sqlserver

好累,加班到现在,但是其实你的负责的工作都已经做完了。可是还需要配合别人,只能等!!!  现在已经凌晨了。。。

工作分配不够好?个人不负责?时间规划不好?

不知道!!!


说入正题,这是问题原型:

SQL 慢的:
select * from MyTable where InputTime>‘2015-05-09‘
SQL 快的:
Declare @t datetime
set @t=‘2015-05-09‘
select * from  MyTable  where InputTime>@t
 
第二条比第一条执行的速度快很多!!!


其实我查询了好长时间的资料没查出来什么原因?(连重现都重现不了,是之前记下的问题,引以为戒,每次发现问题需要具体记下来。。。忙了这么就一点收获都没有技术分享

我只想说我以后要用第二种。。。哪位大牛帮帮忙

PS:另外在每次使用SqlParameter时,如果是字符类型的,都尽量加上size,涉及到执行计划缓存的问题

          例如:new SqlParameter("@name", SqlDbType.Varchar, 40) { Value = name };


反正还是不能下班。。。

我又查了一下:好像微软官方也出现过这样的问题

给出的解决方案是这样的:The only resolution to this problem is to use a stored querydef query instead of prepared queries.

也许可以这么理解:

将上面的参数化改为这样:exec(‘resolution select * from MyTable where InputTime >‘‘‘+@t+‘‘‘‘)

暂且就这样吧!主要是现在不能重现,无法验证,如果遇到了,这样先试一下咯


参数化查询速度慢

标签:sqlserver

原文地址:http://blog.csdn.net/richard_dzh/article/details/45588333

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!