Performance Oracle未使用的游标会产生开销吗?
我正在处理一个有很多游标的应用程序,其中许多游标只是在包头中定义的,没有在包体中使用,那么这个未使用的游标是否会产生开销?声明的游标但未使用的游标不会产生开销,但打开但未使用的游标可能会产生一些开销 打开的游标存储在PGA的私有SQL区域中。此“保存有关已解析SQL语句的信息和其他用于处理的会话特定信息。”。您可以通过查询找到您拥有的PGA量 Oracle的“是否已打开但未使用的游标是否在PGA中存储任何内容”并不是100%清楚。PGA私有SQL区域的持久化区域部分暗示,只有将任何变量绑定到游标时,才会创建持久化区域;但是,由于必须存储游标的状态,以便DB知道它是打开的,所以我假设使用了一些内存 如果一个打开的游标对您的性能产生负面影响,我会感到震惊。这表明您严重低估了所需的PGA和SGA(执行计划存储在此处)的大小 但是,这种策略可能会适得其反,因为打开的游标数量受到open_cursors参数的限制,您可以在中找到该参数。这是可以打开的游标数量的绝对上限。如果你达到这个极限,你会得到ORA-01000 这意味着您不应打开不打算使用的游标。 然而,这也值得注意,尽管它是从2004年开始的 3-如果增加了open_游标,那么会对db>服务器的性能和内存使用产生什么影响?Performance Oracle未使用的游标会产生开销吗?,performance,oracle11g,cursor,Performance,Oracle11g,Cursor,我正在处理一个有很多游标的应用程序,其中许多游标只是在包头中定义的,没有在包体中使用,那么这个未使用的游标是否会产生开销?声明的游标但未使用的游标不会产生开销,但打开但未使用的游标可能会产生一些开销 打开的游标存储在PGA的私有SQL区域中。此“保存有关已解析SQL语句的信息和其他用于处理的会话特定信息。”。您可以通过查询找到您拥有的PGA量 Oracle的“是否已打开但未使用的游标是否在PGA中存储任何内容”并不是100%清楚。PGA私有SQL区域的持久化区域部分暗示,只有将任何变量绑定到游标
... 跟进2004年4月1日至UTC上午10时:
…
…3)如果您没有点击ora-1000,它将不会改变任何内容(因为您没有使用当前拥有的游标)