我们有一个SQL Server数据库设置,其中链接服务器设置连接到Progress OpenEdge数据库。我们使用类似于以下内容的代码创建了一些OpenEdge表的SQL Server视图(用于SSRS):
创建视图帐户AS SELECT * FROM OPENQUERY(myLinkedServerName, 'SELECT * FROM PUB.accounts')
CREATE VIEW客户端AS SELECT * FROM OPENQUERY(myLinkedServerName, 'SELECT * FROM PUB.clients')
由于某种原因,查询似乎带回整个表,然后在SQL端过滤而不是在Progress侧执行查询。
有人知道为什么或如何纠正这种情况?
由于
答案 0 :(得分:0)
作为原生OpenEdge SQL查询执行时是否更快? (您可以使用sqlexp命令行工具从proenv提示符运行查询。)
如果不是,则问题可能是您需要在数据库上运行UPDATE STATISTICS。
http://knowledgebase.progress.com/articles/Article/20992
您可能还需要运行dbtool来调整字段宽度(OpenEdge字段都是可变宽度,可以过度填充 - 这样可以使SQL客户端适合。)