存储过程中用什么可以替代游标
2017-05-03 18:05
274 查看
存储过程中用什么可以替代游标 20
存储过程代码如下: CREATE OR REPLACE PROCEDURE pd_P_visitPlan_answer (sKeyid varchar2, sVpid varchar2, sVpcmid ...展开崔传磊 | 浏览
1448 次
推荐于2016-05-17 20:31:19
最佳答案
Mysql存储过程优化——使用临时表代替游标。
Mysql游标在操作小数据量时比较方便,效率可观,但操作大数据量,速度比
9f5a
较慢,甚至直接产生系统错误。
一般说来,当操作的数据超过1万条时,就避免用游标吧。
为了测试游标性能,写了下面一个游标对IDC_Gather_Info表中数据进行遍历
![](https://gss0.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/d788d43f8794a4c2ff1f9ba908f41bd5ad6e3977.jpg)
下面是当表中数据分别为15万、5万、1万时游标的表现:
1.数据量15万,存储过程执行失败,提示错误:Incorrect key file for table '/tmp/#sql_3044_0.MYI';try to repair it
2.数据量5万,执行成功,耗时31.051s
3.数据量1万,执行成功,耗时1.371s
下面使用临时表替换游标:
![](https://gss0.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/b21bb051f81986188b7993064ced2e738bd4e672.jpg)
1.数据量15万,执行成功,耗时8.928s
2.数据量5万,执行成功,耗时2.994s
3.数据量1万,执行成功,耗时0.634s
可以看到Mysql的游标在处理大一点的数据量时还是比较乏力的,仅适合用于操作几百上千的小数据量。
相关文章推荐
- mysql 存储过程中使用游标中使用临时表可以替代数组效果
- 存储过程DIY3----游标中可以使用子查询:
- 怎样在存储过程中动态的使用表名,而又可以使用游标?
- 触发器、游标、函数、存储过程、事务
- 利用SQL的游标存储过程分页
- 发布一个高效的数据分页的存储过程 可以轻松应付百万数据
- SQL Server加过密的存储过程可以被解密?
- 存储过程中的游标使用
- 可以多个字段排序的分页存储过程
- DB2 多游标存储过程测试
- asp+sql的存储过程出错"800a0bb9 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。"
- 一个自认为写得还可以的存储过程,就是没有注释,看起来有点乱。与ERP的BOM相关的
- 修改后的存储过程``哈哈``可以输出总记录数 总页数
- 利用游标在存储过程中做循环数据处理
- SQL Server中用with encryption进行加密的存储过程,可以用下面过程解密!
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 封装游标存储过程(Pr_execsql2)
- 可以依据任何字段进行排序并分页的存储过程
- 一个高效的数据分页的存储过程 可以轻松应付百万数据
- 一个高效的数据分页的存储过程 可以轻松应付百万数据