当数据库服务器变得十分繁忙导致性能下降时,你会怎么办?购买更多的硬件升级你的服务器,还是重新考虑数据库服务器设计使得数据库平台具备良好的可升级性呢?如果你在一个相当大的商店工作过,你很可能偶尔遇到过这些问题。有时答案是简单地查看一下当前的应用以及改进一些设计来提高性能。
分析阶段
在你决定升级你的数据库环境之前,你应该制定一个性能标准,然后,对查询和模式做些修改,对照你制定的标准看性能是否有所提高,一旦可以使得你当前的系统能够高效的工作,那么你应该重新评估是否仍旧需要升级系统。
扩大VS减小
扩大和减小是你可以用来改变你的数据库环境以提高性能的两种方法。下面我们对这两种方法的优缺点做一个比较。
扩大
这种方法,你要为数据库系统购买新的或改进的硬件。这些增加的硬件可能包括快速控制器,快速硬盘子系统,更多的内存、更多的处理器等等。
优点:为机器增加新硬件毫无疑问将会加速你的应用的执行。在大多数环境下,简单扩大服务器将会提到足够的性能达到满意的地步。你可以使用64位新版SQL Server来大大提高性能,该版本需要更多内存和更大的处理能力。
缺点:企业级服务器机器上的硬件价格十分昂贵,因此这可能会是一个禁止的昂贵代价。如果等你有足够的能力来扩大时,可能已到了需要减小的时候。
减小
这种方法是分解数据库,将不同部分的数据分别存放在单独的数据库服务器上,这种方法通常要对应用层和数据库层做大量改变才能成功实施。
优点:这种方法允许你的设计更具可升级性,因为如果你当前的结构正导致了一个瓶颈,你就可以进一步分解设计,使用更多的机器分别处理数据。分解的典型模式是将逻辑相关的表格分解到不同的服务器上或者平行的分解你的表格使得每个数据库服务器拥有全部数据集的一部分。你也可以将这两种方法结合起来使用。
减小方法的另一个优点是潜在地可以处理大的事务负载,而且你可以使用普通的硬件,这要比扩大升级要购买的硬件便宜的多。此外,它通常不需要像扩大升级那样要购买企业级的服务器。
缺点:进行这种升级要比扩大的方法困难的多。事实上,建议只在下面这种情况下使用这种方法:当你的当前系统已经平均每分钟处理N个事务,再也不能处理更多。这种方式的升级之所以困难是因为它很难维护,拥有众多的可移动部分,且很难逻辑地分割数据或表格。因此处理被均衡的分配到单独的服务器上。
(责任编辑:董建伟)
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交