我有一个中等复杂度的RDS视图。问题是,当我通过Lambda(Python)从视图中选择 * 时,我会得到间歇性的超时错误,但当我在DBeaver(SQL客户端)中做同样的事情时,结果会立即返回。
几个注意事项:
1.我检查了RDS中的IOPS平衡,它始终保持在99%,因此没有问题。
1.相同的视图在SQL客户端中立即返回数据,所以可能是RDS-Lambda连接的问题?
1.但是其他Lambda使用相同的连接到相同的RDS示例,并且它们都成功地连接并完成工作。
1.在检查元数据表时,select * from view显示为Active query logged in database,因此不是查询返回了结果,而是Lambda没有收到结果。
1.工作节奏是每天,但超时是像一周一次左右。
99%的情况下,简单的重新执行lambda就可以了,但有时我们需要在sql客户端手动执行查询并获取结果。
pg_stat_Activity输出:
1条答案
按热度按时间64jmpszr1#
DBeaver(默认情况下)不会选择前面的所有行。它使用类似游标的东西,只获取前几页所需的行数。