我有这个非常大的桌子,每天有数百万条记录,每天结束时我都会提取前一天的所有记录。我这样做:
String SQL = "select col1, col2, coln from mytable where timecol = yesterday";
Statement.executeQuery(SQL);
问题是这个程序需要2GB的内存,因为它会将所有结果都记在内存中然后处理它。
我尝试设置Statement.setFetchSize(10)但它从操作系统获取完全相同的内存它没有任何区别。我正在使用Microsoft SQL Server 2005 JDBC驱动程序。
是否有任何方法可以在小块中读取结果,例如Oracle数据库驱动程序在执行查询时只显示几行,当您向下滚动时会显示更多结果?
天涯尽头无女友
撒科打诨
慕虎7371278
相关分类