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