我正在使用DBIselect
模块来触发Oracle
. 使用DBIprepare
的模块,已经准备好查询,然后使用该模块,执行选择查询。execute
我的问题是:一旦执行查询,结果就会存储在内存中,直到我们使用任何fetchrow
方法来检索结果。到那时,查询结果是存储在Oracle内存还是Perl内存?
据我了解,应该是在Oracle内存中,我还是想确认一下。
它保存在 Oracle 中,直到您发出第一次提取。但是,您应该知道,一旦您进行第一次 fetch 调用 DBD::Oracle(我假设您正在使用)即使您只要求一个,也可能会一次性取回多行(您可以使用 RowsInCache 查看多少行)。您可以更改与 ora_prefetch_rows、ora_prefetch_memory 和 ora_row_cache_off 一起使用的设置。
在 Oracle 内存中。第一个提示:您无权访问该数据。execute
您可以在语句之前和之后测试您的 Perl 脚本使用的内存量以确认。