从 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 文档中的基于光标获取结果