0

野兔是场景:

主数据库服务器:SQL Server 2008 R2 与 Oracle 11g 的链接服务器。

我有一个存储过程,可以进行如下查询:

Select t1.a, t1.b, t2.c, t3.d
From LocalTable a inner join LinkedServerName..Schema.Tableb b on a.aNumber= b.id
     inner join LinkedServerName..Schema.Tablec c on b.value = c.id
     inner join LinkedServerName..Schema.Tabled d on a.someOtherNumber = d.Id
 Where a.WhereValue1 = @Parameter1
   and b.WhereValue2 = @Parameter2 

这变得非常缓慢。我无法弄清楚如何使用 OpenQuery 来改进查询,因为Where子句使用参数(如果甚至可以使用的话)。

有没有办法改进数据检索?我正在从 Oracle 数据库中检索数百万条记录。

非常感谢你。

4

1 回答 1

0

我建议您至少在 Oracle 端创建一个视图来连接表 b、c、d 并加入该视图。LocalTable 中有多少条记录?如果很少(不到 10,000 人左右),那么您最好在 Oracle 方面加入整个事情。

你的总体目标是什么?您是在构建报告还是尝试识别不同的记录以便合并数据?你能在预言机方面做出改变吗?

于 2013-03-14T00:49:46.963 回答