oracle - 游标中定义的查询执行多少次?

标签 oracle stored-procedures plsql cursor

我在 Oracle 数据库中有一个存储过程。
在此存储过程中,我定义了一个游标。

我使用以下方法迭代结果集:

FOR item IN cursor_name LOOP
END LOOP;

查询执行了多少次?有什么办法让我知道吗?这也是最好的方法,还是我应该以不同的方式迭代?

谢谢。

最佳答案

游标cursor_name中的查询仅执行一次。从该游标获取多少次取决于。每次获取都意味着一次上下文切换。从 Oracle 版本 10 开始,如果设置参数 PLSQL_OPTIMIZE_LEVEL如果设置为默认值 2 或更高,则会启动优化,您将一次获取 100 行。如果没有这个,您将分别获取每一行。当获取大量行时,这会极大地损害性能。

还要注意不要将 SQL 语句放入循环内。当您这样做时,显然您将执行这些语句的次数与从游标中提取的行数相同。

问候,
罗布。

关于oracle - 游标中定义的查询执行多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391039/

相关文章:

oracle - 使用 TYPE 属性检索 VARRAY 元素类型

database - 甲骨文表格 : only iterate through selected records

php - 每天获得最高记录

css - 用于 Oracle 数据库应用程序的 Rich Internet Application (RIA)

oracle - Oracle 中合理的年份数据类型是什么?

PHP if 和 while 语句无法正常工作

excel - 使用 Excel 2010 通过存储过程读取/写入 SQL Server 2008 数据库

c# - 在 C# 中调用 Oracle 存储过程

sql - 循环更新数据库记录?

oracle - 在 Ubuntu 12.04.1 LTS 上安装 Oracle Database 11g Express Edition