SQL Server群集性能

任何人都可以帮我回答我希望是一个非常简单的问题吗?

假设我有一个运行在SQL Server数据库上的应用程序,并且正在运行性能testing。 如果我设置数据库服务器群集,我应该期望提高性能吗? 还是这样“只是”给我更好的时间和可用性特点与故障等?

我倾向于认为后者,所以如果我觉得数据库性能很差,我应该在我的应用程序devise上工作,而不是购买额外的硬件。

问候,埃米尔

这非常依赖于您的集群如何configuration和访问。 “集群”一词可以涵盖几种不同的安排,这没有帮助。

有些安排的影响很小,有些会明显减慢速度(例如,多个活动服务器,在这种情况下,事务需要等待所有的服务器在提交之前升级,这可能会增加相当大的事务延迟,插入/更新,同样在服务器之间编组locking信息也会影响只读操作) ,一些安排可能会加快速度(多个只读副本将只读负载放在多台机器上,locking需求允许实例)

所以:是的,不,或者也许! 如果你详细地描述你的安排(机器,操作系统,数据库pipe理系统,集群configuration,什么代码访问集群(单个Web服务器,许多Web服务器,许多外部客户端…),加载模式,可能会得到更好的答案。

(所以不幸的是,这不是一个简单的问题,因为你希望,对不起!)

不,你不会看到任何提高的performance。 MS SQL Server中的群集解决scheme仅用于高可用性,而不用于扩展或负载平衡。

您可以将集群中的两个节点同时设置为活动状态,但是这些节点将服务于不同的数据库,并且如果失败,仍然只从另一个节点“接pipe”数据库。

从一台SQL服务器获得比一台服务器更多的性能是一个复杂的问题,我会毫不留情地宣称,无论你的情况如何,你都可以更容易地解决你的数据库性能问题,更快的磁盘,并通过调整您的数据库代码。

您必须拥有共享存储(SAN / NAS),并且最有可能比直接连接的磁盘执行得更好,但群集的性能不如独立实例。 一个群集只是为了降低硬件故障的风险。