在Oracle内存或Perl内存中查询结果?

时间:2013-01-29 06:16:35

标签: oracle perl memory dbi

我正在使用DBI模块触发select的{​​{1}}查询。使用DBIOracle模块,已准备好查询,然后使用prepare模块执行选择查询。

我的问题是:执行查询后,结果将存储在内存中,直到我们使用任何execute方法检索结果。那么,查询结果是存储在Oracle内存还是Perl内存中?

据我所知,它应该在Oracle内存中,我还是想确认一下。

2 个答案:

答案 0 :(得分:1)

在您发出第一次抓取之前,它将保留在Oracle中。但是,您应该知道,一旦您进行了第一次获取调用,DBD :: Oracle(我认为您正在使用)可能会一次性取回多行,即使您只需要一行(您可以看到RowsInCache有多少行) )。您可以更改ora_prefetch_rows,ora_prefetch_memory和ora_row_cache_off使用的设置。

答案 1 :(得分:1)

在Oracle内存中。第一个提示:您无权访问该数据。 您可以在execute语句之前和之后测试Perl脚本使用的内存量。

请参阅http://docstore.mik.ua/orelly/linux/dbi/ch05_01.htm