SQL Server负载平衡

devise不佳的CRM / CMS / SCM /呼叫中心系统,使用C#/ ASP.NET / MS SQL Server开发。

我遇到的问题是,客户在生产中使用这个系统,正在接近一个非常繁忙的时期。 这个业务是半季节性的,这意味着系统在这段时间内是关键的。 上面提到的所有这些都是使用SQL服务器从一个核心数据库运行的,而且由于复杂/大型SQL语句的可笑性,数据库服务器正在耗费大量的时间。

服务器本身是相当令人印象深刻的16GB内存和16核心处理能力。 目前这只是应付。 所以在繁忙的时候它会倒下。 基本上没有时间以编程方式纠正问题。 我们需要在这个问题上查找硬件。

这就引出了我的问题,为了实现SQL负载平衡,我需要完成一些开发工作,还是有没有一种方法来平衡负载而不做任何开发? 承载服务器的ISPbuild议我们需要进行一些开发。

任意数据库系统中最大的瓶颈始终是磁盘I / O *。

16核心? pffft。 你还有16个磁盘在RAID 10中运行吗?

如果没有,得到它们。


*当然,你完全不显示任何性能指标,所以如果你对我们可能给你的实际build议感到好奇,开始收集性能数据并显示出来。

事实上,直到你做,你不能certificate有问题

负载均衡持久存储没有这样的事情。 您可以对只适用于非常狭窄的特定问题域的存储(分片)进行分区,也可以对显式扩展的应用程序进行分区,可以使用可读的备用分区(复制,日志传送,镜像+快照,AlwaysOn),它的工作时间延迟可以接受,甚至还有复杂的主 – 主复制scheme,它们都不起作用。

所以你唯一的select是修复应用程序或加强数据库。 应用程序修复总是会产生最好的结果,但要求您有权访问非常罕见的资源(好的开发人员)和时间。 另一个select,永远不会匹配修复应用程序的结果,是加强数据库。 这要求你确定瓶颈。 等待和排队是一个很好的方法,经过实践certificate能够产生正确的结果。 如果你不知道如何去做,请与有信誉的专业人士联系 ,寻求帮助。