我的客户端有一个带有MS Access作为后端的VB 6.0应用程序。但是,现在Access无法承担负载。所以,我们现在正考虑转向SqlExpress版。此外,我们将VB6.0应用程序转换为基于c#的Winforms。我的问题 -
1)SqlserverExpress可以同时支持10个用户吗?如果不是SqlExpress,那么还有哪些其他选项?
2)我应该先将VB 6.0转换为C#应用程序吗?因为,如果我将数据传输到Sqlserver,VB 6.0应用程序会继续工作吗?
感谢
答案 0 :(得分:3)
您不需要转换您的应用程序,但Access和Sql Express是不同的数据库引擎,因此您需要将您的应用程序用于sql express
请注意,2008 R2之前的sql express最多可以处理4 Gb数据库,而2008 R2每个数据库最多可以处理10 Gb。
答案 1 :(得分:1)
1)SQL Express允许超过32,000个并发用户。唯一真正的限制是数据库大小,即10千兆字节。
2)在使用SQL Server之前,您至少需要修改VB 6应用程序才能拥有正确的连接字符串。
我很好奇为什么你说Access(JET数据库引擎)无法承担负载。通常20个甚至更多的同时用户都没问题。
答案 2 :(得分:0)
如果产品是内部使用且不产生现金,您可以使用oracle。除非您的应用程序用于商业用途,否则可以免费使用。
答案 3 :(得分:0)
要问的一个问题是在系统减速的用户数量之后?如果一个用户运行缓慢,那么这可能是一些软件设计问题,而不必在服务器上“加载”。还存在WAN或LAN连接类型的问题。实际上,您可以在以下文章中了解此问题:
http://www.kallal.ca//Wan/Wans.html
以上简要说明了Access数据引擎在WAN上无法正常工作的原因。
同时将数据迁移到SQL服务器而不确定导致速度减慢的特定问题很可能导致进一步放缓。换句话说,通常只是将数据大小调整到服务器数据库引擎并不能解决性能问题,在某些情况下它可能会变得更糟。
事实上,在许多在线Access论坛中,我们经常看到用户在将后端数据文件从Access移动到SQL服务器时抱怨速度变慢。因此,在不利用SQL服务器功能的情况下迁移到SQL服务器并不总能保证性能提升。
您要在此处确定的另一个问题是VB6程序是否使用ADO或DAO。数据对象模型都可以,但如果应用程序基于DAO,则ADO会建议修改LESS代码。
另一个问题是你没有提到大表的数量和数量。所以说30到50个高度相关的表,并说一些表中的少量行(比如200,000)应该运行得很好,有5到15个用户。如果您的用户数量仅为10左右,并且您的表行数量很小,那么性能应该没问题,如果不是,那么如上所述,您可以将应用程序保持原样并将数据移动到SQL服务器如果没有进一步的代码修改,可能无法提高性当然,必须修改一些代码以与SQL服务器一起使用 - 多少将取决于所使用的数据对象,以及所有代码的数量。 (更多记录集代码=需要更多代码更改的机会更多)。
答案 4 :(得分:0)
如果您决定从Access转换为SQL Server Express,则会有一个迁移向导,可以让您快速了解该过程。这是link