黑马程序员技术交流社区

标题: 关于sql的一些问题 [打印本页]

作者: 李长波    时间: 2012-11-11 00:49
标题: 关于sql的一些问题
本帖最后由 李长波 于 2012-11-11 00:56 编辑

什么时候用存储过程?什么时候用游标?假设数据量比较大!怎么去优化!我知道oracle的话会有分区去做优化!但分区有那么多!各种分区的使用场合!这个问题是面试经常问到的!希望大家好好回答!
作者: 许坤    时间: 2012-11-11 09:31
本帖最后由 许坤 于 2012-11-11 09:33 编辑

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2