oracle关联查询多个dblink的问题排查
问题描述
项目中采用了通过创建多个分库的dblink,在查询库中创建相应表的视图,用于多分库数据查询。但测试时发现基本不可用。现需要排查分析原因。
案例说明
查询库服务器部署于ip14: db_query
两个分库服务器均部署于ip15: db_1 db_2
查询库建立两个dblink: dblink_1 dblink_2
数据量说明
表名 | 数据库 | 数据量 |
---|---|---|
aaaa | db_1 | 1000W |
aaaa | db_2 | 0 |
bbbb | db_1 | 1000W |
bbbb | db_2 | 0 |
cccc | db_1 | 1 |
cccc | db_2 | 1 |
## 查询库通过dblink创建视图 其它表相同逻辑
CREATE OR REPLACE VIEW aaaa AS
SELECT * FROM db_1.aaaa@dblink_1 UNION ALL SELECT * FROM db_2.aaaa@dblink_2
## 测试sql
SELECT
/*+ parallel(8)*/ count(1)
FROM aaaa a, bbbb b
WHERE a.c_fundacco = b.c_fundacco
AND a.c_tacode = 'xx'
AND a.c_tacode = b.c_tacode
AND a.c_tenantid = b.c_tenantid
AND a.c_tenantid = '*'
AND a.c_tacode IN (SELECT /*+ nl_sj */tacode
FROM cccc
WHERE role_id IN (