2011-12-31 79 views
1

我有一个客户谁拥有MS Access作为后端VB 6.0应用程序。但是,现在Access无法承受负载。所以,我们正在考虑转向SqlExpress版本。此外,我们将VB6.0应用程序转换为基于WinForms的C#。我的问题 -我的选择是什么 - sql express或?

1)SqlserverExpress可以同时支持10个用户吗?如果不是SqlExpress,那么还有哪些其他选项可用?

2)我应该首先将VB 6.0转换为C#应用程序吗?因为,如果我将数据传输到Sqlserver,VB 6.0应用程序会继续工作吗?

谢谢

+1

是的SQL Express是完全正常的。 – Phill 2011-12-31 06:37:53

回答

3
  1. 是它可以
  2. 你并不需要你的应用程序进行转换,但Access和SQL Express的 - 不同的数据库引擎,所以你需要采取你的应用程序到SQL Express

  3. 请注意,2008 R2之前的sql express可以处理高达4 Gb的数据库,而2008 R2可以处理高达10 Gb的每个数据库。

0

如果产品是在家中使用,并不产生现金,你可以使用oracle。它的免费使用,除非你的应用程序是商业用途。

1

1)SQL Express允许超过32万同步用户。唯一真正的限制是数据库大小,即10千兆字节。

2)您将需要至少修改VB 6应用程序以使其具有正确的连接字符串,然后才能与SQL Server一起使用。

我很好奇,你为什么说Access(JET数据库引擎)无法承受负载。通常20个甚至更多的同时用户是没有问题的。

+0

哦,我不知道Access可以承担这样的负载。我会试图弄清楚为什么负载成为问题。目前,我无法访问代码或数据库。所以,作为一个起点,我将研究Access无法承担负载的原因。 – John 2011-12-31 07:05:32

0

要问的一个问题是多少用户系统减速后?如果一个用户的速度很慢,那么这可能是一些软件设计问题,而不是服务器上的“负载”。还有连接广域网或局域网的问题。事实上,你可以在下面的文章中了解这个问题:

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

以上简而言之解释了为什么Access数据引擎不会在WAN上很好地工作。

将数据迁移到SQL服务器而无需确定导致减速的特定问题可能会导致进一步减速。换句话说,通常只是将数据放大到服务器数据库引擎不会解决性能问题,并且在某些情况下可能会变得更糟。

事实上,在许多在线Access论坛中,我们经常看到用户抱怨在将后端数据文件从Access移动到SQL Server时速度变慢。所以只是转向SQL服务器而不利用SQL服务器功能并不总能保证性能提升。

您要确定的另一个问题是如果VB6程序使用ADO或DAO。数据对象模型是好的,但ADO会建议如果应用程序基于DAO,则必须修改LESS代码。

另一个问题是你没有提到多大的表格和数量。所以说30到50个高度相关的表格,并且说在一些表格中有少量的行(比如说20万)应该在5到15个用户的情况下运行得很好。如果您的用户数只有大约10,并且您的表的行数如前所述那么小,那么性能应该没问题,如果不是,那么您可能会注意到您可以保持应用程序原样并将数据移动到SQL服务器没有进一步的代码修改,可能无法提高性能。当然,有些代码需要修改才能与SQL服务器一起工作 - 多少将取决于所使用的数据对象,以及有多少代码。 (更多的记录集代码=需要更多代码更改的机会更多)。

0

如果您确实决定从Access转换到SQL Server Express,则会出现一个迁移向导,可以让您快速启动该过程。这里的link

相关问题