【发布时间】:2021-05-21 21:38:43
【问题描述】:
我正在使用将 Oracle 作为链接服务器的 SQL Server 2012。
如果我直接在 Oracle 上运行一个简单的查询:
select *
from Server..TableA
where Name like 'Jack%'
需要 0.9 秒。
从 SQL Server 执行相同的操作需要 2 分钟!
这是一个已知问题吗?有任何解决方法的想法吗?
如果OpenQuery 总是比..Servername 快得多,则响应以下解决方案。为什么还有第二种方法?
【问题讨论】:
-
查询返回多少行?您是否在测量两种情况下获取第一行或最后一行所需的时间?您是否查看过
v$sql以了解通过链接服务器在 Oracle 中实际运行的查询? -
只有 120 行。不知道如何使用 v$sql。请详细说明。
-
v$sql显示 Oracle 缓存中的每个查询。如果您搜索 SQL 文本,您应该能够找到实际发送的查询,然后可以将其链接到计划、执行统计信息等。我的猜测是谓词正在应用于 SQL Server 端而不是甲骨文方面。可能是因为字符集问题,但这开始变得非常投机。第一步是确定 Oracle 实际看到的内容。
标签: sql-server oracle tsql