【问题标题】:Oracle linked server super sloworacle链接服务器超慢
【发布时间】: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


【解决方案1】:

我通常不回答我的问题,但由于这种缓慢浪费了几个小时 我的时间,我终于找到了一个解决方案,我会在这里发布。 希望这可以节省其他人几个小时的生命:)

解决方法是使用TSQL OpenQuery函数:

例如

SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');  

根据我目前的经验,OpenQuery 真的很快!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 2013-09-14
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多