r2dbc oracle背压实施与fetchsize

r2dbc oracle背压实施与fetchsize,oracle,r2dbc,Oracle,R2dbc,似乎r2dbc oracle没有适当的背压实现。如果我选择更大数量的行(比如10k),那么它比常规的jdbc/JPA查询慢得多。如果我手动将fetchsize设置为1000,那么查询速度大约快8倍(!) 所以 您能确认背压是否已实施/未实施吗?如果没有:是否有计划 是否有一种更简单的方法来设置fetchsize(甚至可能是全局的…),然后使用手动databaseclient.sql()查询 感谢分享这些发现 我可以确认来自订阅者的请求信号不会影响Oracle R2DBC的行发布器的获取大小。目

似乎r2dbc oracle没有适当的背压实现。如果我选择更大数量的行(比如10k),那么它比常规的jdbc/JPA查询慢得多。如果我手动将fetchsize设置为1000,那么查询速度大约快8倍(!)

所以

  • 您能确认背压是否已实施/未实施吗?如果没有:是否有计划
  • 是否有一种更简单的方法来设置fetchsize(甚至可能是全局的…),然后使用手动databaseclient.sql()查询

    • 感谢分享这些发现

      我可以确认来自订阅者的请求信号不会影响Oracle R2DBC的行发布器的获取大小。目前,配置获取大小的唯一受支持的方法是调用io.r2dbc.spi.Statement.fetchSize(int)

      这种行为可以归因于Oracle JDBC对Oracle.JDBC.OracleResultSet.publisherOracle(函数)的实现。Oracle R2DBC驱动程序正在使用Oracle JDBC的发布服务器从数据库中获取行

      我还可以确认Oracle JDBC团队已经意识到这个问题,并且正在进行修复。当订阅服务器的请求超过Statement.fetchSize(int)配置的值时,该修复程序将使发布服务器使用更大的获取大小

      来源:我为Oracle R2DBC和Oracle JDBC的行发布器编写了代码