您的位置:首页 > 其它

存储过程中用什么可以替代游标

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表中数据进行遍历





下面是当表中数据分别为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

 

下面使用临时表替换游标:





1.数据量15万,执行成功,耗时8.928s

2.数据量5万,执行成功,耗时2.994s

3.数据量1万,执行成功,耗时0.634s

 

可以看到Mysql的游标在处理大一点的数据量时还是比较乏力的,仅适合用于操作几百上千的小数据量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: