Microsoft SQL Server Express vs ACE



目前,我正在为一家小型租赁公司(3个地点)开发一个基于c#的程序。现在,他们使用MS Access 97(基于Jet SQL)作为数据库,我希望升级它。然而,我确实想保持访问作为前端,因为我将在开发后离开,当地人员知道如何使用访问(一些更改需要在数据库中直接编辑)。

我在两个选项之间犹豫不决:

  • 升级到Access 2013,因此使用MS ACE作为数据库引擎
  • 使用SQL Server Express with Access作为前端,因此使用MS SQL Server作为DB引擎

系统将有一个共享数据库,每个位置一个。他们正在使用共享驱动器(他们在MS Server 2008上工作)。他们的数据库非常小(<1 GB的组合),所以我不需要额外的性能,例如MySQL提供。我知道ACE和SQL Server在设计方面的区别(文件共享vs客户端/服务器),但我仍然不知道哪种更适合这种情况。

在考虑性能、可靠性、安全性和与应用程序的连接时,什么是更好的选择?

正如@granadaCoder指出的那样,使用SQLExpress的安全性,性能和可靠性远远优于Jet和ACE,并且同样容易连接/链接到您的Access 97前端。微软提供了一个功能强大且易于使用的免费迁移工具。

将MS-Access 97应用程序转换为2013可能会遇到一些真正的挑战。从Access 97到2013的转换需要两个步骤。你必须先转换成2002-2003年,然后再转换成2007/2013年。您还需要为所有用户和后端数据库购买许可证。

此外,如果您的97应用程序引用外部对象,它们可能无法与更新版本的Access一起工作。

正如@granadaCoder也建议的那样,一个好的中长期计划是将前端转换为。net。

Microsoft Jet只是网络驱动器上的一个文件。当你做查询的时候......Jet-Runtime(在本地PC上)必须通过网络带来大块数据(整个表)。因此,它是残酷的。

Sql Server (Express或Other)....在主机上作为服务运行。当执行查询时,它在服务器上进行处理并返回"更小的信息桶"。

(您提到了解文件共享与客户端-服务器之间的区别)。

如果你不能放弃你的Access(程序)前端…那么做Sql-Server链接表将是你最好的选择,恕我直言。好吧,我是从性能角度来说的。

安全性,您可以为不同的用户和密码提供更多选项。你可以划分哪些登录/db-users被允许做什么。

IIRC, Jet数据库允许一个密码。要么全有,要么全无

https://www.connectionstrings.com/ace-oledb-12-0/with-database-password/

单凭这一点,我就会选择SqlExpress。

.

早期的重大设计决策是使用Microsoft-Access-Forms。你正在为你的过早决定付出代价。

即使人们使用Jet-Database,我也只会将其用于基本的数据存储。然后在上面放一个Layer . net应用程序。那么换到另一个数据存储就不会那么激烈了。

祝你好运。

最新更新