Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MS Access与SQL Server及其他?当小于2GB且只有20个用户时,是否值得使用db服务器_Sql Server_Ms Access - Fatal编程技术网

Sql server MS Access与SQL Server及其他?当小于2GB且只有20个用户时,是否值得使用db服务器

Sql server MS Access与SQL Server及其他?当小于2GB且只有20个用户时,是否值得使用db服务器,sql-server,ms-access,Sql Server,Ms Access,在我对MSAccess和MySQL进行实验后,发现MS Access的性能远远超过MySQL odbc insert的1000%,而在我对SQL Server进行同样的实验之前,我搜索了其他人,发现了这个人: 上面说 “作为旁注,在这个特定的测试中,Access提供的原始性能比SQL Server好得多。在更复杂的情况下,Access的性能很可能比SQL Server更差,但很高兴看到Access并不是一个懒汉。” 因此,当数据小于2GB且用户约为20时,值得为某些db服务器操心(知道MS A

在我对MSAccess和MySQL进行实验后,发现MS Access的性能远远超过MySQL odbc insert的1000%,而在我对SQL Server进行同样的实验之前,我搜索了其他人,发现了这个人:

上面说

“作为旁注,在这个特定的测试中,Access提供的原始性能比SQL Server好得多。在更复杂的情况下,Access的性能很可能比SQL Server更差,但很高兴看到Access并不是一个懒汉。”

因此,当数据小于2GB且用户约为20时,值得为某些db服务器操心(知道MS Access理论上最多支持255个并发用户,但实际上仅支持十几个并发用户)


在这些特定的用例中,是否有任何真实的研究将MS Access与其他db进行比较?因为从专业角度讲,我经常听到人们系统地向从未使用过Access的人推荐DB server,因为他们认为DB server只能在每种情况下表现得更好,而我过去一直认为我承认这一点。

您需要分析您将要构建的应用程序类型。如果它与Microsoft office应用程序集成,access可能是正确的选择。如果您想不出在您的应用程序中使用Access优于MySQL的具体优势,我建议您使用MySQL。您从一开始就获得了可扩展性和速度的优势。并不是说您应该担心预成熟优化,而是谁知道您是否需要支持更多数据和更多用户。为什么要限制自己?

你可以整天为不同数据库的可能性和功能而挣扎。然而,最终,这一切都取决于实际的表设计和将要编写的查询

考虑到世界上最好的服务器和最好的数据库(不管是什么),如果一个noob设计了一个蹩脚的模式并使用了写得很差的查询,那么使用什么数据库真的重要吗


相反,如果服务器和数据库规模不大,专家仍然能够获得良好的性能。

使用SQL server优于Access的主要好处与性能关系不大

毕竟,您可以通过编写平面文件获得出色的插入性能

SQL Server(以及即使在Express版本中也可用的SQL Server引擎)提供了与Access截然不同的功能集


举个例子,网络或多用户环境中的访问在任何方面都不可靠—在网络共享上打开访问时(即使没有读写过程)关闭网络连接,而且您的数据库将被视为脏数据库,甚至可能无法恢复。

对于20个用户和远低于Jet/ACE限制的数据量(如果Jet/ACE数据文件接近1GB,我将开始计划升级),升级不一定会带来性能好处

然而,如果你想在你的应用程序中增加20个用户的自由度,那么你必须非常小心地编写它,以免在Jet/ACE数据存储中造成问题。这是可以做到的,但在应用程序设计中需要更加小心。当然,如果这20多个用户几乎都是只读的,这会增加你的空间,但他们通常不是

另外要考虑的是安全性和可靠性。使用服务器后端,您可以获得更高级别的二者。这并不意味着升迁必然是合理的(升迁带来的成本很多人没有意识到,例如,管理、重新设计应用程序和不同的用户/安全管理工具)——你必须平衡所有成本和收益

相反,由于特定应用程序的安全性和可靠性要求,服务器后端通常具有更小的用户群和更小的数据量

拥有20个用户,我想说,如果你正在考虑新的开发,而不是升级现有的应用程序,那么从一开始就使用服务器后端将更有意义,以便利用它给你的喘息空间进行扩展。这意味着您在实现方面不必如此小心(除非您希望在WAN上运行它,在这种情况下,您无论如何都无法使用Jet/ACE后端)


但如果你只是问一个现有的应用程序是否应该升级,仅仅因为它有20个用户,那么答案是,不,除非Jet/ACE后端已经存在性能问题。

20个并发用户的访问性能优于MySQL 1000%?只要有多个并发用户,我就会选择SQL Server Express而不是MS Access,甚至可能在这之前!您的第四段是非常错误的,它表明您根本不了解Access文件是如何被标记为可能已损坏的。在更新/插入数据时,仅在短时间内设置脏标志。我个人曾看到数据库中有15名用户发生断电,其中许多人在工作中进行数据输入/更新。文件服务器上有UPS,但用户工作站上没有。当电源恢复时,数据库没有以任何方式标记为损坏。“用户只是继续使用。@Tony Toews-尝试几次。我们在一个稳定的网络环境中构建了托管应用程序,其中有数百个分片数据库,每个数据库上有几十个用户。几十年来,由于各种原因,我看到Access数据库已经损坏(可恢复和不可恢复)。当然,有时候不是。这并不能否定这样一个事实,即最小的光点会导致它们需要恢复,有时甚至无法恢复。即使是Microsoft支持人员也会告诉您,他们不支持多用户网络环境。即使使用了所有Access最佳做法,您仍然容易受到攻击。@Tony To