1

我使用 ODBC 和文件数据源从 ms 访问(前端)连接到 MS SQL 服务器(数据库)。我创建了从 SQL Server 收集数据的 MS Access pass-trough 查询(直接调用 MS SQL Server 函数返回表)。当我在 MS SQL 管理控制台中运行此查询时,它运行大约 1 秒。当我使用 ODBC 连接字符串从 MS Access 运行它时,相同的查询运行大约 5 分钟(!!)。但是当我从查询属性中清除连接字符串时,它会运行 1 到 2 秒(可以接受)。使用相同连接字符串的其他查询和链接表可以正常工作(所以字符串相当不错) 为什么这个会出问题?有什么想法要检查吗?

4

2 回答 2

1

我知道这是一篇旧帖子,但是...我一直在谷歌搜索无济于事,所以我想把它放在那里...

我有一个向下钻取 SP,它返回.... 最多 200 行 MS Access 应用程序使用 ALL 将查询传递到 Azure。除了这个之外,所有的工作都很好。在 SSMS 中,它几乎立即返回。ODBC 字符串在所有查询上都相同,因此连接很好。

将 max rows 属性设置为 1000 后,表单几乎立即返回。清理了财产,它又变慢了……

这个属性对我来说绝对是不同的。将其设置为远远超出上限的数字确实可以正常工作。

hth,..鲍勃

于 2019-06-17T20:03:27.870 回答
0

我只使用 Windows 身份验证(信任)。“清除”表示删除除“ODBC”之外的所有内容;短语。当我在查询属性中留下此通知时,Access 要求提供 DSN,我选择一个,然后在 2 sek 后得到结果。但是当我把完整的连接字符串

ODBC;Description=我的数据库;DRIVER=SQL Server;SERVER=MYSERVER;APP=2007 Microsoft Office system;DATABASE=MYDB_Prod;LANGUAGE=polski;Trusted_Connection=Yes

我打电话的查询是:

选择 * FROM dbo.fn_MyFunction()

函数 fn_MyFunction() 是表值 1,返回两行大约 50 列(怀疑列数可能是问题,因为其他查询较少),它用于访问报告(这就是我使用传递查询的原因- 当我使用通过 odbc 链接到 MS Access 表的 MS SQL 服务器视图进行测试时,也会发生同样的情况)

相同的连接字符串适用于其他查询

看来我找到了解决方案(或解决方法?)我已经使用 VPN over Internet 链接进行了测试。当我搬到办公室时 - 它运行良好,几乎立即返回我上面写的字符串。

对我来说奇怪的是,链接类型会产生这样的影响:其他查询在两者上都运行良好(LAN 和 Internet 上的 VPN),但这个 - 仅在 LAN 上(也可以在 Internet 上运行,但性能不可接受)。我可以理解如果一切运行缓慢.. 为什么这个?任何想法?

于 2016-01-05T12:12:54.763 回答