• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

What‘s new in Microsoft SQLServer2000(七)

发布: 2007-6-21 12:06 | 作者:   | 来源:   | 查看: 15次 | 进入软件测试论坛讨论

领测软件测试网

   
  联合SQL 2000服务器(Federated SQL Server 2000 Servers)
  可能大家都听说过集群服务器Clustered Server,但是在SQL 2000里面我却惊奇的发现,集群服务器不见了!取而代之的是一个叫联合服务器的东东。
  现在就让我们来看看它们之间有什么区别吧。

  SQL 2000的数据库能够被分散在一组独立的数据库服务器上以支持大规模的Web站点的访问需求和企业级的数据处理系统。面对日益增长的需求,只需要简单的添加一个节点服务器就可以了。
  ——我怎么看不出来和集群服务器有什么区别嘛?
  ——上课的时候,不要发出这种声音!急什么,下面自然会讲到的。再乱讲话就罚站了哦。
  Windows 2000的COM+组件就是被设计来用于在集群的Windows 2000服务器上实现商业逻辑层的。每个服务器上都有一套同样的COM+组件,WIndows 2000自己来平衡各个服务器之间的负载。使用Cluster Administrator可以很方便的配置集群服务器。
  但是SQL 2000并不支持这样的集群。SQL 2000支持可更新的分布式视图(distributed partitioned views ),用它来水平的将数据分割在一组服务器上。这使得用户可以把一个数据库服务器添加到一组数据库服务器中,这些数据库相互合作,以提供和集群数据库服务器相同的性能标准。虽然它们合作管理这些数据,但是它们之间是独立运作的。每个服务器有独立的管理界面,(当然,你可以使用Enterprise Manager来管理一组服务器,但总是作为一个Group中多个Server来管理的,并不能把它们当作是一个Server),也有各自的运作规则,可以有其他的数据和进程,只是在联合起来处理一个工作的时候才联合在一起。
  SQL 2000现在在多CPU的系统上可以有非常优异的性能(可以有8个或者更多的CPU),但是使用联合服务器,你几乎可以处理无限的负载。现在http://www.tpc.org 最高的tpcc纪录就是12台8CPU的联合服务器完成的。(2月17日的测试结果,到现在仍然是最高的。)
  数据库服务器和商业逻辑服务器不一样,运行商业逻辑的时候每个服务器都可以完成相同的工作,即使一台服务器down了也不会对系统有什么影响。而数据库就不一样,你必须把数据分散在不同的服务器上,否则对性能就没有什么提高了。而在这样的情况下,如果数据库服务器不能用于处理独自的事务,那么就显得有些浪费。
  
  如何使用联合服务器
  1、建立Linked Server
  
  SQL 7就有了的东东,打开你的Enterprise Manager,Security|Linked Servers,右键New Linked Server...,Server Type选SQL Server,然后填上用户名口令什么的
  
  2、在每个服务器上建立表
  -- On Server1:
  CREATE TABLE Table_1_To_30000
  (ID  INT PRIMARY KEY
  CHECK (ID BETWEEN 1 AND 29999),
  ... other fields
  )
  
  -- On Server2:
  CREATE TABLE Table_30000_To_60000
  (ID  INT PRIMARY KEY
  CHECK (ID BETWEEN 30000 AND 59999),
  ... other fields
  )
  
  -- On Server3:
  CREATE TABLE Table_60000_To
  (ID  INT PRIMARY KEY
  CHECK (ID > 60000),
  ... other fields
  )
  
  3、在每个服务器上建立视图
  CREATE VIEW Partitioned_Views AS
  SELECT * FROM MyDatabase.dbo.Table_1_To_30000
  UNION ALL
  SELECT * FROM Server2.MyDatabase.dbo.Table_30000_To_60000
  UNION ALL
  SELECT * FROM Server3.MyDatabase.dbo.Table_60000_To
  
  4、Mission Accomplished
  现在你就只要简单的使用这个视图就可以了,服务器自己知道把数据放到该放的地方去,查询的时候也知道该从那里去取数据,是不是很easy呢?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网