A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李长波 中级黑马   /  2012-11-11 00:49  /  1021 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李长波 于 2012-11-11 00:56 编辑

什么时候用存储过程?什么时候用游标?假设数据量比较大!怎么去优化!我知道oracle的话会有分区去做优化!但分区有那么多!各种分区的使用场合!这个问题是面试经常问到的!希望大家好好回答!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

倒序浏览
本帖最后由 许坤 于 2012-11-11 09:33 编辑

存储过程:
sql语句执行的时候要先编译,然后执行。存储过程就是编译好了的一些sql语句。用的时候直接就可以用了。所以效率会高.
当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程;当在一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个状态的判断更改等)要考虑;还有就是比较复杂的统计和汇总也要考虑,但是过多的使用存储过程会降低系统的移植性。
游标:
一般用于返回多行数据。
用处:比如分页。会返回指定的行数对象。
有隐式游标 sql%found sql%NOTFOUND
普通游标
引用游标(用得较多,一般跟程序包,存储过程一起用)
具体的楼主还是要自己多加揣摩,方法是多种的,灵活运用!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马