首页 > 解决方案 > MS Access 将链接表更改为 AWS MySQL Db 会减慢表单/报告的速度

问题描述

我是一家公司的新角色,他们正在使用 MS Access 和 MySQL 数据库,该数据库运行在服务器中,该服务器物理上位于我们的专用网络后面的办公室中。我受雇开发一个全新的应用程序,以使公司达到现代标准。当我们将功能/模块移动到我正在编写的新 Angular/NodeJs 应用程序时,用户仍然需要利用 MS Access 提供的 UI 来访问将在 AWS Lightsail 上的新生产数据库。但是,当我更改 Ms Access 的配置、OBDC 连接以指向 AWS Lightsail MySQL Db 时,MS Access UI 中的所有内容(尤其是报告)变得比在办公室网络中指向 MySQL Db 时要慢.

我要去“链接表管理器”并更改“连接字符串”。在我读到的某个地方,我应该确保禁用 SSLMODE 以消除任何性能问题。

DSN=AWS_Dev;DATABASE=ECSDataTables;PORT=3306;SERVER=IP_ADDRESS;SSLMODE=DISABLED;

我在 Windows 中浏览了普通的“ODBC 数据源管理器”,并正常添加了 MySQL AWS 主机、用户/密码。

我进行了广泛的研究并找到了几个来源,但没有一个真正有帮助。

我被要求不要花太多时间尝试修复/优化 MS Access 中的任何内容,因为我的重点应该放在新应用程序上,但很难相信 MySQL 数据库的简单切换会产生这样的影响。在新的 Angular/NodeJs 应用程序中,一切都运行得非常快,所以我知道它不是 AWS MySQL 数据库或任何东西。

我是否遗漏了什么,我应该在 Ms Access 中进行的任何配置?我已经有大约十年没有使用 VB 了,所以我希望可以在不需要太多技术背景的情况下做一些事情。

谢谢你。

标签: mysqlms-accessodbc

解决方案


好吧,问题是您的局域网 (LAN) 大约是您的 Internet 连接速度的 10 倍或更快。

您的低成本办公网络很可能是 1 千兆位网络。(100 碱基 T 很少见)。

但是,您的互联网高速连接可能是 10 mb。所以,你从 1000 到 10 - 慢了 100 倍。所以,3 秒现在变成了 300 秒。

我的意思是,在连接速度如此缓慢的情况下,这里不应该有任何惊喜。

对于客户端 sql 的复杂连接的任何报告,您可以做的是将 sql 查询转换为服务器端视图,链接到该视图。现在使用该视图作为报告的基本来源。当然,现有的 VBA 文件管理器(您总是使用(对吗???)来启动报告)现在只会从网络管道中提取它需要的数据。访问报告(或表格)只会拉下您要求的内容 - 而不是整个表格。因此,您拥有的任何过滤器(使用 open report 命令的 where 子句)都将受到尊重。因此,您要么必须提取更少的数据,要么只需找到与您的局域网具有相似速度等级的东西(这种高速互联网很少见)。

本文概述了 LAN 与 WAN 的概念和速度问题:

http://www.kallal.ca//Wan/Wans.html

虽然上面的文章很老了,但今天互联网的速度差异大约快了 10 倍,但本地区域也从 100 baseT 变为 1 gig bit base。

所以,事情变慢了,因为你正在使用一个非常慢的连接速度。慢就是慢!!!

编辑

虽然如前所述,访问只会提取您所要求的内容,但访问客户端表现不佳的情况是涉及多个表的 sql 查询 - 通常客户端会弄乱它发送服务器端的内容。如前所述,这种情况下的解决方案是采用视图服务器端。这意味着您将驱动报表的客户端查询移动到视图,并链接到该视图。对于单个表查询,您不会获得太多性能,但是对于任何基于复杂(多表连接)的报告,然后使用视图将强制 sql 和“连接工作”发生在 sql server 端,这可能会导致巨大的性能增益。


推荐阅读