当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 向外扩展SQL Server 实现更高扩展性

MSSQL
SQL Server中选出指定范围行的SQL语句写法
Microsoft SQL Server 2000安装问题集锦
修改SQL Server 2005 sa用户密码的方法
SQL Server数据库查询优化的常用方法总结
两种与SQL Server数据库交换数据的方法
Sun正式发布MySQL 5.1版 简化数据库应用
使用SQL Server 2008中对象相关性
SQL注入防御:用三种策略应对SQL注入攻击
SQL Server 2005 SP3正式版
MySQL数据库中使用GRANT语句增添新用户
讲解数据库加密技术的功能特性与实现方法
如何在SQL Server数据库中加密数据
30步检查SQL Server安全列表
在SQL Server数据库开发中的十大问题
向外扩展SQL Server 实现更高扩展性
SQL Server 2005 五个动态管理对象
从算法入手讲解SQL Server的典型示例
如何解决SQLServer占内存过多的问题
SQL指令植入式攻击的危害及其防范措施
SQL游标原理和使用方法

MSSQL 中的 向外扩展SQL Server 实现更高扩展性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 71 ::
收藏到网摘: n/a

本文说明向外扩展数据库系统的两个选项,从而实现更高的可扩展性:水平数据划分和垂直数据划分当我提到向外扩展数据库系统时,我实际上只是讨论对数据库系统进行分割或划分,以便你能利用那些部分,把它们分配到单独的数据库服务器上。这允许你在许多服务器间分散处理能力,以适应不断扩张的增长。

但是,额外的特性和功能需要更高的复杂程度。一个向外扩展的数据库很难进行设计或管理。在你成功对一个数据库系统实行向外扩展之前,你必须解决许多困难的商业和技术难题。

本文说明向外扩展数据库系统的两个选项,从而实现更高的可扩展性:水平数据划分和垂直数据划分。

水平数据划分

使用水平数据划分,数据库结构在数据库实例方面没有变化。通常,数据库之间唯一的不同在于实例包含的数据不同。

开发出中间层应用程序,使得实例间的数据得到适当维护,是这种解决方案的特点。可能很难决定如何在数据库实例间划分数据。数据分配方法十分关键,因为我们需要在不同服务器间比较平均地分散数据负载。不进行这种平均分割,你就无法取得向外扩展数据库的任何好处,因为查询或事务处理的大部分IO仍然只发生在一台服务器上。

既然全部数据不再保存在一台服务器上,因此在必要时更难对所有数据执行查询。幸运的是,你可以建立分布式划分视图连接两个服务器实例间的数据,使得数据看起来就像保存在一台服务器上。有一些特殊的视图,它们利用连接的服务器和在数据表上建立的约束,有效地返回数据,就好像你只查询一台服务器上的数据一样。(我将在下周的文章中详细讨论分布式划分视图。)

另外,值得一提的是,如果服务器处在不同的地理位置,它们的性能可能会受到影响。在这种情况下,你可能希望复制实例间的数据,以便每台服务器拥有完整的数据,但只负责维护特定的一块数据。

垂直数据划分

垂直数据划分包括把数据库表分割成在不同服务器上保存的不同数据库实例。每台服务器一般分配完成一个特殊的任务。这样就可以对那些表中的IO进行分割。这种类型的分割取决于将系统逻辑地划分成许多部分,以便这些部分能够独立操作。如果实例间需要最少量的交互进行事务处理,这种处理就很有必要。

例如,如果你的数据库系统维护销售、营销和广告数据,最好是把这些表分割成单个的数据库实例,阻止它们共享同一台服务器上的IO。可能你还需要处理这两个共享一些相同数据(例如客户数据)的系统。能够分割这些商业功能,你就可以在必要时向外扩展数据库环境,提高系统效率。

你可以采取一些措施,如在每一台服务器上使用相互连接的表和视图,以便实例可以从其它实例中查看数据。这样做可以减少应用程序层决定在哪找到它需要的数据时所需的额外计算量。你需要保证应用程序层具有必要的逻辑性,以决定将数据保存在哪台服务器上。

修改

你可以对水平和垂直数据划分方法进行修改,使其更好地适应你的环境。例如,你可以使用一个面向服务的架构在服务器间分配处理能力; 应用复制确保数据库实例相互之间保持紧密同步;以及组合应用这些技巧。