存储过程能提高多少查询的速度?
今天做了一个实验,把存储过程里的语句提取出来,有参数的地方改为手工填入,执行查询的时间和使用存储过程查询的几乎一致。
想问问这样查询和使用存储过程查询有何区别?存储过程的优势体现在哪,本人小白一枚高手勿笑,只是好奇
------解决方案--------------------存储过程一般地说,存储过程不如直接使用sql语句快。
用存储过程的主要目的,是简单的几句SQL无法解决时,使用一个程序块做为存储过程来解决。
------解决方案--------------------存储过程是预先编译好的,第二次调用直接从buffer pool力直接调用.减少了从新编译的速度!
dbcc freeproccache 执行 清空缓存..后执行速度就跟语句一样了...说不定还比语句慢,因为他比语句字符多..编译相对慢! 呵呵.. 还有就是不清空缓存的时候 你改变了参数..这个参数从而影响了表 也是要从新编译的! 时间比t-sql慢... 但总的来说..过程比sql快!
------解决方案--------------------过程缩短的是编译速度..t-sql必须每次编译! 编译速度就是从你提交查询-到-返回第一个字符的这段时间