设置 JDBC 提取大小参数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从 2025 年 11 月 1 日起,Amazon Redshift 将不再支持创建新的 Python UDF。如果您想要使用 Python UDF,请在该日期之前创建 UDF。现有的 Python UDF 将继续正常运行。有关更多信息,请参阅博客文章

设置 JDBC 提取大小参数

默认情况下,Redshift JDBC 驱动程序使用环形缓冲区来高效管理内存,并防止出现内存不足错误。仅当明确禁用环形缓冲区时,提取大小参数才适用。有关更多信息,请查看链接。在此配置中,您应设置提取大小以控制每个批次中检索的行数。

何时使用提取大小?

在以下情况下使用提取大小参数:

  • 您需要对基于行的批处理实施精细控制

  • 使用需要传统提取大小行为的旧式应用程序

设置提取大小

在已禁用环形缓冲区的情况下,JDBC 驱动程序会默认一次性收集查询的所有结果。返回大型结果集的查询可能会占用过量内存。要分批而非一次性检索结果集,请在应用程序中设置 JDBC 提取大小参数。

注意

ODBC 不支持提取大小。

为获得最佳性能,请将提取大小设置为不会导致内存不足错误的最大值。较小的提取大小值会导致更多的服务器通信,从而延长执行时间。服务器会预留资源,包括 WLM 查询槽和关联内存,直到客户端检索到整个结果集或查询取消为止。如果适当优化提取大小,则可以更快释放这些资源,使其能够供其他查询使用。

注意

如果需要提取大型数据集,建议使用 UNLOAD 语句将数据传输到 Amazon S3。使用 UNLOAD 时,计算节点并行工作,以加快数据的传输。

有关设置 JDBC 提取大小参数的更多信息,请参阅 PostgreSQL 文档中的基于光标获取结果