我在oracle数据库上有一个“select * from tables..joins ...”查询,它将返回大约22百万行。我正在使用C#和ODP.NET,如下所示: oracleDataReader odr = command.ExecuteReader(); 但在执行此语句时,该过程需要大约1.5 Gb RAM,这不是很好。 关于如何节省一些记忆的任何想法? 谢谢!
答案 0 :(得分:1)
首先尝试在查询中添加一些where子句,以便最大限度地减少结果的数量。您确定一次需要所有22milions结果吗?
然后你可以将select * from ....改为select columnA,columnB from ...也会节省一些内存,因为select * ...返回所有列的数据,你在该查询中使用的所有表。这可能不够有效。问候:)
答案 1 :(得分:0)
Oracle必须支持这样的表达式: SELECT * from Table WHERE ROWNUM< = 10