我们正在使用带有Sql Server数据库的Asp.net MVC构建Web应用程序。 该应用程序应该服务数百个用户甚至数千个用户。 为了使其可伸缩,我们希望将数据库分离到运行IIS的不同服务器。
最好的方法是什么?使用连接字符串从IIS服务器到数据库服务器的引用?它不会减慢性能吗?
我们还想将此应用程序的某些服务分离到另一台(第三台)服务器。 是否将数据库复制到第三个服务器是一个好主意?这样我们就可以从第一个问题中减少数据库机器的负载。怎么做?
答案 0 :(得分:1)
最好的方法是什么?从IIS服务器到的引用 数据库服务器使用连接字符串?不会放慢速度 性能
没有最好的办法,因为只有一种方法可以开始。将SQL Server放在另一台计算机上。结束。
您必须调整连接字符串。这将引入延迟并且带宽低于内存,但实际上这些事情是无关紧要的 - 除非你在内存中进行select * From table
和过滤,希望没有人这样做。
重点是 - 你获得了更多的处理能力,你获得了可扩展性,相比之下,理论上的影响很小。如果您设法加载数据的1千兆位网络链接,您可能会遇到一些严重错误的设计或一些非常笨拙的编程。对于目的数据库服务器而言,一个非常重要且有希望构建的更高速度将远远超过小的性能损失。
将数据库复制到第三个服务器是一个好主意吗?
一根绳子有多长?这取决于服务。一般来说 - 没有。在极少数边缘情况下 - 是的。怎么决定?经验 - 和常识,基于具体要求。
答案 1 :(得分:0)
它建议在服务器上只使用SQL Server。并且不要在该服务器/机器上运行任何其他应用程序。 (如果可能,甚至避免在一台机器上使用多个实例)。由于SQL Server本质上利用所有可能的可用资源来提供最佳性能,并且它假定它是该计算机上唯一的应用程序。
因此,在同一台计算机上托管Sql Server和IIS,您将启动并在两个应用程序之间争夺资源。
显然,如果您在单独的服务器上安装了sql server,则需要调整连接字符串。