我在Oracle数据库中有一个存储过程 在这个存储过程中,我定义了一个游标。
我使用:
遍历结果集FOR item IN cursor_name LOOP
END LOOP;
查询执行了多少次?有没有办法让我知道?这也是最好的方法,还是应该以不同的方式进行迭代?
感谢。
答案 0 :(得分:5)
游标cursor_name
中的查询仅执行一次。从光标中获取的次数取决于。每次获取意味着上下文切换。从Oracle版本10开始,如果将参数PLSQL_OPTIMIZE_LEVEL设置为默认值2或更高,则优化将启动,您将一次获取100行。如果没有这个,你将分别获取每一行。在获取大量行时会严重损害性能。
还要注意不要将SQL语句放在循环中。当你这样做时,显然会执行这些语句的次数与从光标中提取的行一样多。
的问候,
罗布。