将 Access 数据库迁移到 MSSQL 后端

将 Access 数据库迁移到 MSSQL 后端

我们在学员学校有一个数据库,它使用 Access 来实现所有功能和数据。它开始变得缓慢,并且不总是更新。我知道 Access 2003 及更高版本(不确定旧版本是否如此)允许您连接到外部数据源以获取数据,并且只需从 Access 中使用报告和表单

如果我将所有数据转换为 MSSQL 数据,并将 Access 指向服务器,多用户性能和可靠性会提高、变差还是保持不变?对于一次用户少于 5 人的小型数据库,优缺点是什么?

答案1

将包含查询、表单和报告的 Access“前端”附加到存储在 SQL Server 数据库中的数据表非常简单。有一种名为“适用于 Access 的 Microsoft SQL Server 迁移助手”将现有的 Access 数据库传输到 SQL Server。

但这样做是否有益,这一点非常值得怀疑。一个同时有不到 5 个用户的“小型”数据库在 Access 97 及以上版本中运行时不应该出现任何性能或可靠性问题。我个人安装了 200 多个非常复杂的多用户 Access 系统,其中许多系统运行了 10 多年,每个系统同时有多达 25 个用户,没有出现任何特殊问题。

话虽如此,SQL Server 肯定比 Access 引擎更可靠,但对于您描述的那种小型应用程序来说,它应该不是必需的。Access 可靠性的唯一真正问题是网络可靠性。网络连接中断或不一致可能会导致数据库损坏,但只需在 Access 中打开数据文件并允许其自动修复,几乎总是可以轻松修复这种损坏。

当有数百名用户同时使用时,SQL Server 的性能肯定会更好,但当有 5 名用户同时使用时,Access 中的大多数功能都会一样快甚至更快。请记住,即使有 5 个人打开了应用程序,他们实际与数据库进行事务处理的唯一时间是将数据加载到表单或报告中(运行查询)或保存对数据的更改。观察他们的工作,您几乎肯定会发现,即使在数据库上同时执行两个实际操作也不常见。

Access 应用程序的几乎所有性能问题都是由于设计不正确造成的,首先是数据结构,然后是糟糕的查询和表单设计、宏的使用(永远不要使用)和/或糟糕的 VBA 代码。大多数新的 Access 用户都没有意识到需要将多用户应用程序拆分为单独的前端和后端数据库。这文章解释了为什么这是必要的,以及具体如何做。这相当简单 - Access 中甚至有一个向导可以帮助您完成。

如果您无法解释或解决 Access 应用程序的特定性能问题,您可能应该在这里或其他论坛上寻求帮助,描述问题的确切性质。还有一些好书可供选择 - 尤其是访问开发者手册作者:Ken Getz 等。虽然这本书很老了(2002 年出版),但它却是 Access 设计的“圣经”,而且 99% 的内容仍然适用于较新的版本。

祝你好运!

相关内容