0

我们有一个 SQL Server 数据库设置,其中一个链接服务器设置连接到 Progress OpenEdge 数据库。我们使用类似于以下的代码创建了一些 OpenEdge 表的 SQL Server 视图(用于与 SSRS 一起使用):

创建视图帐户为 SELECT * FROM OPENQUERY(myLinkedServerName, 'SELECT * FROM PUB.accounts')

创建视图客户端为 SELECT * FROM OPENQUERY(myLinkedServerName, 'SELECT * FROM PUB.clients')

由于某种原因,查询似乎带回了整个表,然后在 SQL 端进行过滤,而不是在 Progress 端执行查询。

有人知道为什么或如何纠正这种情况吗?

谢谢

4

1 回答 1

0

作为原生 OpenEdge SQL 查询执行时是否更快?(您可以使用 sqlexp 命令行工具从 proenv 提示符运行查询。)

如果不是,那么问题可能是您需要在数据库上运行 UPDATE STATISTICS。

http://knowledgebase.progress.com/articles/Article/20992

您可能还需要运行 dbtool 来调整字段宽度(OpenEdge 字段都是可变宽度并且可以过度填充——这让 SQL 客户端适合。)

http://knowledgebase.progress.com/articles/Article/P24496

于 2012-09-19T10:00:59.353 回答