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

存储过程的优点体现在哪里????
由于数据量较大,这几天在做优化工作
想把sql语句改成用存储过程
但通过事件跟踪发现存储过程的cpu占用比直接写sql语句要高

sql语句是这样的在一张20万多条数据的表中   根据条件查询取的前十条数据
存储过程的cpu占用是250   sql语句是0
reads也是sql语句的四倍左右或许更高没记住

以前我一直以为存储过程的cpu要比直接调用sql语句来的少的
不知道怎么会这样
仔细想了下   觉得有这么一个可能
就是传入sql语句时   sql   server会对查询条件进行优化
而存储过程系统可能就没进行优化   而我本人也没去优化
这样就解释了为什么存储过程的reads要高   cpu自然也就高了

不知道是不是这么一回事   等待专家中

------解决方案--------------------
那就优化完存储过程再比较吧,否则是个不公平的比较

------解决方案--------------------
在性能方面,存储过程的优点:
1、预编译,存储过程预先编译好放在数据库内,减少编译语句所花的时间。
2、缓存,编译好的存储过程会进入缓存,所以对于经常执行的存储过程,除了第一次执行外,其他次执行的速度会有明显提高。
3、减少网络传输,特别对于处理一些数据的存储过程,不必像直接用sql语句实现那样多次传送数据到客户端。
4、更好的利用服务器内存,特别对于处理中间数据量不大的情况,存储过程中可以利用存放在内存的表变量。
5、高手补充.......

------解决方案--------------------
俺觉得存储过程就是一方法,封装了好用