1

我目前使用的语句:

select * from openquery(linkedserver, 'select a,b,c, from nameofview') rowset_1.

我想要做的是在 Advantage 数据库服务器上调用一个存储过程,并将参数传递给它。由于数据量正在快速增长,因此对此的需求非常重要。

目前,SQL 报告将数据呈现给最终用户需要超过 15 分钟。我被要求对报告进行更改,这只会增加时间。

如果我可以将参数传递给程序,并让程序减少收集的数据量,而不是让报告收集所有数据然后减少它,那就太好了。

4

1 回答 1

2

使用存储过程类似于在 Advantage 中执行查询,

select * from openquery(linkedserver, 'execute procedure nameofproc(p1, p2)') rowset_1

要定义存储过程,必须在数据字典中定义数据库。该过程可以在 DLL 或SQL 脚本中实现

一种更简单的提高性能的方法可能只是添加 where 子句来限制服务器返回的数据量:

select * from openquery(linkedserver, 'select a,b,c, from nameofview WHERE ...') rowset_1
于 2013-09-23T17:33:04.073 回答