oracle跨库关联慢,跨DBLINK Insert into慢的问题解决

一、问题描述

今天用户给出一个SQL,select执行很快,但是insert进表时就很慢,半天没个动静。

SQL执行用时:310s

INSERT INTO uop_sta_cen.WXL_IDC_STATE

(INS_DATE, DOMAIN_ID, EPARCHY_CODE, CUST_ID, USER_ID, SERIAL_NUMBER)

SELECT SYSDATE,

'3',

EPARCHY_CODE,

to_char(CUST_ID),

to_char(USER_ID),

SERIAL_NUMBER

FROM UCR_CRM3.TF_F_USER@UQRY_SEL_TO_HACRMDB22 T

WHERE T.REMOVE_TAG = '0'

AND T.USER_ID IN

(SELECT A.USER_ID

FROM UCR_CRM3.TF_F_USER_SVC@UQRY_SEL_TO_HACRMDB22 A

WHERE A.SERVICE_ID IN ('46000003', '46000005', '46000006')

AND SYSDATE BETWEEN A.START_DATE AND A.END_DATE);

43688

单独执行SELECT,用时0.078s

SELECT SYSDATE,

'3',

EPARCHY_CODE,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中没有官方支持的dblink功能,但可以通过使用FEDERATED存储引擎来实现跨库查询。 FEDERATED存储引擎允许MySQL服务器访问远程MySQL服务器上的表。使用FEDERATED存储引擎,可以在本地MySQL服务器上创建一个虚拟表,该虚拟表实际上是指向远程MySQL服务器上的表的链接。这样,就可以使用SELECT、UPDATE、INSERT和DELETE语句在本地MySQL服务器上访问远程MySQL服务器上的表。 下面是如何使用FEDERATED存储引擎实现跨库查询的步骤: 1. 在远程MySQL服务器上创建一个表,并授权用户访问该表。 2. 在本地MySQL服务器上创建一个FEDERATED表,该表引用远程MySQL服务器上的表。 3. 在本地MySQL服务器上执行SELECT语句查询FEDERATED表。 示例代码如下: 在远程MySQL服务器上创建一个表,例如: ``` CREATE TABLE employees ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT(11) NOT NULL, salary DECIMAL(10, 2) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB; ``` 在本地MySQL服务器上创建FEDERATED表,例如: ``` CREATE TABLE employees_federated ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT(11) NOT NULL, salary DECIMAL(10, 2) NOT NULL, PRIMARY KEY (id) ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://remote_user:remote_password@remote_server:remote_port/remote_database/remote_table'; ``` 在上述代码中,CONNECTION参数指定了远程MySQL服务器的连接信息。remote_user和remote_password是远程MySQL服务器的用户名和密码,remote_server和remote_port是远程MySQL服务器的主机名和端口号,remote_database和remote_table是远程MySQL服务器上的数据库名和表名。 最后,在本地MySQL服务器上执行SELECT语句查询FEDERATED表,例如: ``` SELECT * FROM employees_federated; ``` 上述SELECT语句将返回远程MySQL服务器上employees表的所有记录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值