如何知道显式游标的存活时间?

发布于 2024-09-04 04:12:17 字数 32 浏览 1 评论 0原文

Oracle 本身在多长时间后关闭显式定义的游标?

After how much time oracle itself closes an explicitly defined cursor?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与风相奔跑 2024-09-11 04:12:17

除非您明确要求,否则 Oracle 不会关闭您的游标。您可以在不活动的表上打开游标,等待 24 小时,然后从游标中获取行。

在活动表(可能被更新/删除/插入的表)上,一段时间后您可能会遇到 ORA-1555(表已被修改,并且用于重建旧版本块的信息已被覆盖)。如果您的UNDO表空间设置为AUTOEXTEND,您可以安全地从任何打开的游标中获取UNDO_RETENTION 秒前:

SQL> show parameter undo_retention

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
undo_retention                       integer     900

在我的数据库上,我可以安全地从游标中获取 900 秒(15 分钟)。这是一个较低的阈值(Oracle 将保留足够的数据来重建旧版本的块至少 15 分钟)。

Oracle won't close your cursor unless you explicitely ask for it. You can open a cursor on an inactive table, wait for 24 hours then fetch rows from the cursor.

On active tables (tables that may be updated/deleted/inserted), you may run into ORA-1555 after a while (the table has been modified and the information to reconstruct old versions of the blocks has been overwritten). If your UNDO tablespace is set as AUTOEXTEND, you can safely fetch from any cursor opened less than UNDO_RETENTION seconds ago:

SQL> show parameter undo_retention

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------
undo_retention                       integer     900

On my DB I can safely fetch from cursors for 900 seconds (15 mins). This is a low threshold (Oracle will keep sufficient data to reconstruct old versions of blocks for at least 15 minutes).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文