我正在使用DBI模块触发select
的{{1}}查询。使用DBI的Oracle
模块,已准备好查询,然后使用prepare
模块执行选择查询。
我的问题是:执行查询后,结果将存储在内存中,直到我们使用任何execute
方法检索结果。那么,查询结果是存储在Oracle内存还是Perl内存中?
据我所知,它应该在Oracle内存中,我还是想确认一下。
答案 0 :(得分:1)
在您发出第一次抓取之前,它将保留在Oracle中。但是,您应该知道,一旦您进行了第一次获取调用,DBD :: Oracle(我认为您正在使用)可能会一次性取回多行,即使您只需要一行(您可以看到RowsInCache有多少行) )。您可以更改ora_prefetch_rows,ora_prefetch_memory和ora_row_cache_off使用的设置。
答案 1 :(得分:1)
在Oracle内存中。第一个提示:您无权访问该数据。
您可以在execute
语句之前和之后测试Perl脚本使用的内存量。