java - Netezza 流式处理结果集

标签 java database memory jdbc netezza

我遇到了内存问题,因为我正试图从 Netezza 数据库中读取一个巨大的结果集。 Netezza 是否像 MySQL 一样支持任何类型的“流式”ResultSet?如果不是,是否会像这样限制获取大小?:

stmt.setFetchSize(50); 
conn.setAutoCommitMode(false);

最佳答案

如果您想提取行以存储在文件中,那么最好的办法是使用远程外部表。

这是一个通过 JDBC 创建临时远程外部表的示例。这将调用 JDBC 驱动程序提供的批量导出/加载功能,并创建一个竖线分隔的文本文件。

create external table 'c:\mytest.txt' 
USING (DELIMITER '|' REMOTESOURCE 'JDBC' ) as
select *
from table1;

您可以使用 conn.createStatement().execute 调用它,并且您可能必须将更改文件规范添加到 c:\mytest.txt 以转义现有的反斜杠。

您可以在 documentation here 中阅读有关外部表的更多信息.

顺便说一下,您可以使用 setFetchSize。不过,我不确定它能否解决您的内存问题。

关于java - Netezza 流式处理结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35585571/

相关文章:

xml - 基于 XML 或数据库结构的 Flex 代码生成器

java - 我正在制作一个提醒应用程序,并且我尝试使用 Realm 。我正在使用 getInstance()。这是我得到的错误

将 C realloc 转换为 Delphi

Java:如何使用类似日志记录的模式格式化字符串?

java - 如何让图表内容区域占据其可用的最大区域?

java - 将列表类型属性从应用程序 yml 加载到 Java POJO 中

python - numpy 的性能是否因操作系统而异?

java - Big O 表示法的复杂性

mysql - 如何将重复的记录合并为一个

c - gcc 的缓冲区溢出示例