Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13013
  • 博文数量: 2
  • 博客积分: 20
  • 博客等级: 民兵
  • 技术积分: 32
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-19 11:14
文章分类
文章存档

2015年(1)

2014年(1)

我的朋友

分类: Mysql/postgreSQL

2015-03-20 14:30:26

先建立一个存储过程,从一个大概40万条记录的数据库中,汇总金额。
一个是显式游标,一个是隐式游标。
分别执行。

点击(此处)折叠或打开

  1. CREATE OR REPLACE FUNCTION test()
  2.   RETURNS numeric AS
  3. $BODY$
  4. --
  5. --测试显式游标和隐式游标的效率
  6. --
  7. declare
  8.   vamt numeric(14,4);
  9.   cur cursor is select * from wk_piece3;
  10.   rec record;
  11. begin
  12. --1)显示游标
  13. /*
  14.   vamt := 0;
  15.   open cur;
  16.   loop
  17.         fetch cur into rec;
  18.         exit when not found;
  19.         vamt := vamt + rec.amount;
  20.   end loop;
  21.   close cur;
  22. */

  23. --2)隐式游标
  24.   vamt :=0;
  25.   for rec in select * from wk_piece3 loop
  26.         vamt := vamt + rec.amount;
  27.   end loop;

  28.   return vamt;

  29. end;$BODY$
  30.   LANGUAGE plpgsql VOLATILE

多次执行结果是:
1)显式游标时间:3秒左右
2)隐式游标时间:1.6秒左右
在效率上,隐式游标比显式游标大概快1倍。



阅读(1389) | 评论(0) | 转发(0) |
0

上一篇:PYTHON访问POSTGRESQL数据库

下一篇:没有了

给主人留下些什么吧!~~