通过ODBC的DBLINK查询远端库数据消耗大量内存资源
问题现象:
通过dblink查询远端大表数据,通过nmon或者top等资源监控工具肉眼可见的观察到内存消耗呈线性增长。
问题原因:
odbc直接加载了所有结果集到内存中。导致内存使用急剧膨胀。
解决方法:
Window:开启odbc参数 Use Declare/Fetch
Linux:在odbc.ini中给对应dblink配置添加USEDECLAREFETCH=1参数。
USEDECLAREFETCH,表示执行SQL查询时是否使用服务器的游标。