51Testing软件测试论坛

标题: sqlserver链接服务器性能优化 [打印本页]

作者: 测试积点老人    时间: 2020-8-19 15:01
标题: sqlserver链接服务器性能优化
sqlserver链接服务器性能优化
有个项目需要在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个这样的语句,全部执行完花费了十几分钟
请问有没有什么办法缩短执行时间?


作者: 海海豚    时间: 2020-8-20 09:33
https://blog.csdn.net/coolbeliever/article/details/89490891   参考下这个吧
作者: abcsell    时间: 2020-8-20 09:34
这个一般没多好的办法,除非强化CPU,换固态硬盘
作者: bellas    时间: 2020-8-20 09:40
https://q.cnblogs.com/q/128583/   参考下这个链接
作者: 郭小贱    时间: 2020-8-20 10:51
不如写一个小程序,分别连接oracle和SqlServer,一般读也编写,看看速度。或者读取后批量导入SqlServer。
作者: jingzizx    时间: 2020-8-20 11:38
要单独看看时间,优化数据




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2