野兔就是这样的场景:
主数据库服务器:带有链接服务器到Oracle 11g的SQL Server 2008 R2。
我有一个存储过程,可以进行如下查询:
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 DB中检索数百万条记录。
非常感谢你。
答案 0 :(得分:0)
我建议你做的是至少在Oracle端创建一个连接表b,c,d并加入该视图的视图。 LocalTable中有多少条记录?如果只有极少数(低于10,000左右)那么你最好加入Oracle方面的整个事情。
您的总体目标是什么?您是在构建报告还是尝试识别不同的记录,以便合并数据?你能在oracle方面做出改变吗?