POSTGRESQL显式和隐式游标效率对比

1420阅读 0评论2015-03-20 tony_trh
分类:Mysql/postgreSQL

先建立一个存储过程,从一个大概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倍。



上一篇:PYTHON访问POSTGRESQL数据库
下一篇:没有了