首页 新闻 会员 周边 捐助

sqlserver链接服务器性能优化

0
悬赏园豆:50 [已解决问题] 解决于 2020-08-24 14:16

有个项目需要在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个这样的语句,全部执行完花费了十几分钟


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

HKBlog的主页 HKBlog | 初学一级 | 园豆:141
提问于:2020-08-05 21:25
< >
分享
最佳答案
0

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

收获园豆:50
会长 | 专家六级 |园豆:12461 | 2020-08-06 08:26
其他回答(1)
0

感觉你把sql拼接好 直接执行sql 脚本都比这块

IPeanut | 园豆:223 (菜鸟二级) | 2020-08-25 15:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册