解决方法
您可以通过使用DECLARE命令声明服务器端游标来执行此操作:
DECLARE my_cursor CURSOR FOR select * from foo;
然后重复使用FETCH命令读取其结果:
FETCH 10 FROM my_cursor;
通过在FETCH命令之间休眠,您可以有效地限制查询执行的速度.
完成后,您可以通过调用COMMIT,ROLLBACK或CLOSE my_cursor来摆脱光标
请注意,某些类型的查询无法通过游标直接进行流式处理,但会在生成第一行输出之前运行完成.具有散列聚合和大型非索引排序的查询就是一个例子.您可以降低cursor_tuple_fraction设置(默认值为0.1)以阻止规划人员选择这些类型的计划,但并不总是可行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。