我有内存问题,因为我试图从一个Netezza数据库中读取一个巨大的ResultSet。Netezza是否像MySQL一样支持任何类型的“流”MySQL?如果没有,是否会像这样限制获取大小?:
stmt.setFetchSize(50);
conn.setAutoCommitMode(false);发布于 2016-02-24 22:32:08
如果您想要拉出要存储在文件中的行,那么最好使用远程外部表。
下面是一个通过JDBC创建临时远程外部表的示例。这将调用JDBC驱动程序提供的批量导出/加载功能,并创建一个由管道分隔的文本文件。
create external table 'c:\mytest.txt'
USING (DELIMITER '|' REMOTESOURCE 'JDBC' ) as
select *
from table1;您可以使用conn.createStatement().execute对其进行调用,您很可能需要将文件规范添加到c:\mytest.txt以转义现有的反斜杠。
您可以在这里的文件中阅读更多有关外部表的信息。
顺便说一下,你可以使用setFetchSize。但我不确定这能解决你的记忆问题。
发布于 2016-02-24 10:29:48
通过下面的URL,您可以获得有关ROWSET_LIMIT的信息,通过这个变量设置,您可以将查询结果限制在您的需求上,并根据需要创建流- limits.html?lang=en。
“可以限制查询可以返回的行数,从而限制大型结果集的资源。在创建用户或组时指定行集限制会自动限制返回的行数,这样用户就不必在其SQL查询中添加限制子句。”
https://stackoverflow.com/questions/35585571
复制相似问题