You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ORDS中调整JDBC fetchSize以提升大数据集响应速度?

解决方案:调整ORDS的JDBC Fetch Size提升跨区域大数据集响应速度

完全可行,调整JDBC fetchSize到1000正是解决你当前问题的关键手段,以下是具体实现方式和注意事项:

一、两种调整方式

1. 单个端点针对性调整

如果只想让这个programs/端点使用更大的fetchSize,可将原有的source_type_collection_feed改为source_type_plsql,在PL/SQL逻辑中显式设置游标fetchSize:

BEGIN
ORDS.define_handler(
     p_module_name    => 'default',
     p_pattern        => 'programs/',
     p_method         => 'GET',
     p_source_type    => ORDS.source_type_plsql,
     p_source         => q'[
       DECLARE
         v_cur SYS_REFCURSOR;
       BEGIN
         OPEN v_cur FOR SELECT * FROM v_programs;
         -- 设置fetchSize为1000
         DBMS_SQL.SET_FETCH_SIZE(v_cur, 1000);
         -- 将游标结果序列化为JSON返回
         ORDS.HTP.print(ORDS.JSON.serialize(v_cur));
       END;
     ]',
     p_comments       => 'Get a list of programs in the system.',
     p_items_per_page => 10000);
  COMMIT; 
END;
/

2. 全局调整(所有端点生效)

如果你的多个ORDS端点都存在跨区域大数据集查询的需求,可直接修改ORDS的配置文件全局设置fetchSize:

  1. 找到ORDS安装目录下的conf/ords.properties文件
  2. 添加或修改以下配置项:
    jdbc.fetch.size=1000
    
  3. 重启ORDS服务使配置生效

二、注意事项

  • 调大fetchSize会增加ORDS服务器的内存占用(每次拉取更多数据到内存缓冲区),1000的取值对于10000条数据来说属于合理范围,不会造成明显内存压力;若后续需要返回更大数据集,可根据ORDS服务器的内存配置适当调整上限。
  • 验证效果:调整后往返请求次数会从1001次降低到10次,结合原数据库10秒的查询耗时,整体响应时间会大幅压缩至接近数据库查询耗时+少量网络传输时间。

内容的提问来源于stack exchange,提问作者Göran Paues

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:22:37