sqlserver链接服务器性能,sqlserver链接服务器性能优化

本文探讨了一种在SQL Server中通过链接服务器技术访问Oracle数据库的方法,针对5张总计5万行数据的表,执行效率低的问题。作者寻求缩短执行时间的策略,可能涉及批量导入、优化查询或并发处理。建议尝试编写并比较本地连接和远程访问的性能,或采用批处理操作来提高数据处理速度。

有个项目需要在sqlserver抓取oracle数据,采用了sqlserver中的链接服务器技术访问oracle,有5张表,总数据量大概有5万行左右,使用如下方式访问、遍历数据:

...

DECLARE @tableTemp AS TABLE

(

ID NVARCHAR(36),

NAME NVARCHAR(50)

)

SET @sql = 'SELECT * FROM OPENQUERY(TEST, ''SELECT ID,NAME FROM TEST_TABLE WHERE ID ='''''+@id+''''''')';

INSERT INTO @tableTemp EXEC(@sql);

DECLARE recTask CURSOR LOCAL FOR

SELECT ID,OBJNO FROM @tableTemp ;

OPEN recTask;

FETCH NEXT FROM recTask

INTO @Id,@name

WHILE(@@FETCH_STATUS=0)

BEGIN

--不存在插入,存在更新

...INSERT....

...UPDATE...

FETCH NEXT FROM recTask INTO @Id,@name

END

...

5张表5个这样的语句,全部执行完花费了十几分钟

请问有没有什么办法缩短执行时间?

回答

不如写一个小程序,分别连接oracle和SqlServer,一般读也编写,看看速度。或者读取后批量导入SqlServer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值