1

在使用远程查询和应用 where 子句时,我对我们的 SQL 服务器的性能问题感到有些困惑。当我在本地服务器上运行查询时,会使用聚集索引搜索,但从远程情况下并非如此。

因此,在本地服务器上运行它需要 2 秒:

SELECT * FROM uv_order WHERE order_id > '0000200000'

但是从远程数据库运行这个需要 2 分钟:

SELECT * FROM RemoteServer.data.dbo.uv_order WHERE order_id > '0000200000'

uv_order是一个非常复杂的视图,但是由于在从本地服务器执行时使用了索引搜索,所以我不明白为什么它在运行远程查询时不能使用它。这只适用于视图的接缝,因为在桌子上做同样的事情会按预期工作。

任何想法为什么会发生这种情况以及如何“修复”它?

4

1 回答 1

2

那么你可以像这样修复它

select *
from openquery(
    RemoteServer,
    'select * from data.dbo.uv_order WHERE order_id > '''0000200000''''
)
于 2012-11-26T10:02:08.833 回答