【发布时间】:2022-10-21 06:06:35
【问题描述】:
我想从表中读取所有数据。该表有 400 万行,每行 25 列。我将 fetch size 设置为 1_000,以免 JVM 因大量数据而过载。但查询本身因超时异常而失败。
JDBI 是否提供了一个“游标”,可以批量读取数据从而避免语句超时? JDBI 有没有其他方法可以在没有语句超时的情况下读取这个 JDBI?
代码:
var handle = jdbi.open()
handle
.createQuery("SELECT * FROM TEST_TABLE")
.setFetchSize(1_000)
.mapToMap()
例外:
query execution canceled due to statement timeout [statement:"SELECT * FROM TEST_TABLE", arguments:{positional:{}, named:{}, finder:[]}]
at org.jdbi.v3.core.statement.SqlStatement.internalExecute(SqlStatement.java:1796)
at org.jdbi.v3.core.result.ResultProducers.lambda$getResultSet$2(ResultProducers.java:64)
at org.jdbi.v3.core.result.ResultIterable.lambda$of$0(ResultIterable.java:57)
at org.jdbi.v3.core.result.ResultIterable.iterator(ResultIterable.java:43)
【问题讨论】:
标签: kotlin jdbc cockroachdb jdbi