链接服务器速度慢(SQL Server 到 Oracle)

问题描述 投票:0回答:1

我需要将数据从 Oracle 数据库移动到 SQL Server。

如果我直接在数据库上运行这个非常简单的操作,我会得到结果 < 1 second (returns 30K out of 250m rows):

select * 
From my_table             
where my_date = to_date('2024-09-17', 'YYYY-MM-DD') 

但是如果使用 openquery / 链接服务器运行完全相同的查询需要 1.5 分钟

select * 
FROM OPENQUERY(ORACLE_SERVER, 'select *
                               from my_table             
                               where my_date = to_date(''17-09-2024'', ''DD-MM-YYYY'')') A

我尝试了使用和不使用

to_date
,没有任何实质性改变。

我预计链接服务器会慢一些,但不会慢 100 倍。

知道这可能来自哪里吗?

提前致谢

sql-server oracle linked-server
1个回答
0
投票

有 3 种方法可以对链接服务器执行查询:

  1. 使用四部分命名约定进行调用
  2. 使用 OpenQuery 和 OpenRowSet
  3. EXECUTE() AT [LinkedServer]

供参考:SQL Server:在 LinkedServer 执行

请尝试以下最快的方法#3:

T-SQL

EXECUTE('select * from my_table             
    where my_date = to_date(''17-09-2024'', ''DD-MM-YYYY'')') AT [ORACLE_SERVER];
© www.soinside.com 2019 - 2024. All rights reserved.