从技术上讲,这不是我需要解决的问题。 我正在开发一个应用程序直接连接到MS Access数据库的项目。 客户build议将数据库迁移到他们的SQL Server实例。 然后应用程序将使用不同的连接string直接连接到SQL Server数据库,而不是MS-Access。 一个简单的testingcertificate,这将工作,两个用户连接到同一个数据库。
我不知道客户使用的是哪个版本的SQL Server,但是我想他们知道他们在做什么。 现在,我添加了一些额外的代码更改,我可以在多达5个用户的SQL Server Express 2005上testing应用程序。 但是客户将有500多个用户同时使用同一个应用程序,因此将有500个直接连接到数据库。
我无法说服客户为此项目的更好的客户端/服务器模型额外付费。 这也需要一些额外的开发时间。 而且我不熟悉单个SQL Server数据库上的许多用户可能遇到的问题。 所以我觉得我好像是泰坦尼克号的队长,而我刚刚发现了一座冰山。
那么,它会下沉吗? 这个客户忽略了这个设置的风险是什么? 还是没有值得一提的风险? (客户对SQL Server有经验,所以主要是我怀疑。)
只要用户使用至less有500个用户许可的版本,SQL Server 2005就可以正常工作。 你可能会想要支持超过500,因为连接丢失等,但我会build议SQL服务器通过MS Access的任何一天。
我只是想补充说,SQL服务器有成千上万的并发连接,所以我不会担心,如果我是你。
Joshua是正确的,该SQL Server将处理大量的连接没有问题。 更重要的问题是数据库模式和应用程序代码是否能够处理它。
更多的用户试图同时访问和修改相同的数据可能会导致更多的数据库中的表/行locking请求阻止。 应用程序的性能可能会随着这种使用情况而变慢。 没有看到你的数据库模式,很难说。 虽然假设你只是做了一个从Access到MS-SQL的简单转换,但是你可能没有充分利用真正的RDBMS擅长的事情,比如约束,外键和索引。
你应该注意的另一件事是由于多个并发用户而出现的问题。 为单个用户devise一个应用程序可以让你快速处理需要primefaces化的数据库事务。 在multithreading编程中遇到同样的问题。 如果您有一系列需要全部同时发生的数据库操作,当第一个用户还没有完成时另一个用户启动相同的进程时会发生什么? 第二个处理会影响第一个? 如果是这样,你需要解释这一点。
最终,时间会certificate。 但是,你可能会比预期的更多的工作。
作为一个非常有经验的SQL(和Access)用户,我同意。 旧MSDE2000有一个连接限制我认为,但新的SQL Express不受pipe辖。 Express版本将能够处理连接数量,但Express版本仅限于一个CPU,这限制了一些事情。
如果你最终需要更多的权力,你必须得到一个多CPU版本的SQL,你必须支付。