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