使用DLA扫描线上数据例如RDS时,如果RDS实例规格比较小,可能无法支撑默认的JDBC Connector并发度。您可以在DLA中引入Hint/*+jdbc-scan-splits=2*/,指定扫描一个数据表时的JDBC Connector并发度。

​mysql> /*+jdbc-scan-splits=2*/select count(*) from customer;
+----------+
| count(*) |
+----------+
| 15000002 |​

上述customer表对应RDS MySQL数据库中的customer表。DLA扫描RDS MySQL的customer表时,会使用两个线程同时扫描数据。

注意事项

  • 待扫描目标表必须有一个自增主键,否则无法使用Hint调整查询并发度。

    对于有自增主键的表,您可以按照自增主键把一个查询切分成多个子查询提高查询并发度。

    ​-- 原始SQL
      select * from customer;
      -- 切分成如下的子查询
      select * from customer where id >=0 and id <=10000;
      select * from customer where id >=10000 and id <=20000;​
  • DLA默认并发度是1,对于一些规格配置较低或者复杂数据库,可以将默认并发度适当调低。

  • DLA最大并发度是500。