我正在创建一个脚本,该脚本从i Series/AS 400服务器(DB2)获取大量数据,然后将其发送到kafka topics。但是查询花费了太多时间(2到3分钟)来返回结果,有时我会收到超时错误。
因此,我想知道是否有一种方法可以使SQL查询在给定时间内返回尽可能多的数据,并防止我得到像超时这样的SQL错误?
例如:
SELECT id, user, email
FROM users
DURING 10s;
它会在10秒内选择尽可能多的用户,然后停止,并返回结果?这样我就可以继续同步获取数据并发送给Kafka了?
1条答案
按热度按时间idfiyjo81#
您可以使用较小的页面大小(1 k-10 k数据列?)来实作分页。若要取得理想的结果,您的查询必须符合三个条件:
1.查询必须是可流水线的。
1.查询应包含
ORDER BY
子句。ORDER BY
子句应使用UNIQUE键来实现 * 键集分页 *。现在,条件#2和#3对于正确的结果是必需的(在页面之间没有丢失/重复的行)。如果您查询不满足它,那么每个分页调用都将是昂贵的,且可能超时。