我需要将数据从 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 倍。
知道这可能来自哪里吗?
提前致谢
有 3 种方法可以对链接服务器执行查询:
供参考: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];