MSSQL Server分布式查询 |
SQL Server所谓的 分布式 查问(Distributed Query)是 可以 拜访 存放在同一部计算机或不同计算机上的SQL Server或不同 品种的数据源, 从概念上来说 分布式 查问与一般 查问区别 它需要衔接多个MSSQL服务器也便是 存在多了数据源 。实现在服务器跨域或跨服务器 拜访 。 而这些 查问是不是被 使用 彻底看 使用的需要 。 本篇将演示利用SQL ServerExpress链接远程SQL Server来猎取数据 模式来 详尽 注明 分布式 查问需要 留神细节 。先看一下系统架构数据 查问 根本 解决: 固然假如采纳了 分布式 查问 我们系统采取数据DataBase也就可能在多个远程[Remote Server]上 拜访时: 如上截取系统架构中关于数据与缓存流向中 波及的 分布式 查问业务, 当我们从客户端Client 发动 申请数据时 。 首先 审查MemCache Server缓存服务器是不是有我们想要数据 。 假如没有我需要 查问数据库 。 而此时数据要求 查问多个远程服务器上多个数据库中表, 这时利用 分布式 查问 。 获得数据 而后更新我们在缓存服务器MemCache Server上数据 维持数据更新同步, 同时向客户端Client直接返回数据 。那如何来执行这一系列动作中最为 要害 分布式 查问? 《1》 分布式 查问 模式 我们晓得Microsoft微软公用的数据 拜访的API是OLE_DB, 而对数据库MSSQL Server 2005的 分布式 查问 支撑也是OLE_DB 模式.SQL Server 消费者 可以 使用 分布式 查问 拜访以下内容: A:存储在多个 SQL Server 实例中的 分布式数据 B:存储在各种 可以 使用 OLE DB 拜访接口 拜访的关系和非关系数据源中的异类数据 OLE DB 拜访接口将在称为行集的表格 格局对象中公开数据 。SQL Server 同意在 Transact-SQL 语句中像 引用 SQL Server 表一样 引用 OLE DB 拜访接口中的行集,[其实不用关怀这个行集概念 它的 性能 类似SQL Server中暂时表 不过它容积更大 能 包容类型更多 更 丰硕] SQL Server 实例的客户机与 OLE DB 拜访接口中间的衔接 如下图: 从上图 可以看出 。客户端借助OLEDB接口 可以 拜访Oracle/MS Jet/MS SQL/ODBC/第三方等这些 丰硕数据源来我们 分布式 查问提供数据 。 说了这么多关于OLEDB底层 支撑 。 关于在MS SQL 2005中则 支撑两种 模式来进行 分布式 查问: 使用增加链接服务器 模式(Add Link Server) 使用特定名称及特定数据源来直接指定(Add Host Names) 其实这两种 模式在实际 使用中是有区别的: 模式A:Add Link Server 模式 构建服务器中间关联 。 缔造一个链接的服务器,使其同意对 分布式的、针对 OLE DB 数据源的异类 查问进行 拜访 。 一般 实用于 长久的数据操作 关于数据量偏大 服务器中间交付 工夫长特色 。 模式B: Add Host Name 利用域来唯一 鉴别数据库以及数据库表对象 。 来实现跨服务器 拜访 。 这种 模式一般 比较 方便 重要 实用于对数据需要暂时性 查问是 使用偏多 。 不 合适做大批量数据提取 。 有性能瓶颈 。 《2》 分布式 查问实现 在进行实现 分布式 查问之前 。本次测试Demo对应的SQL版本: 确定SQL Server版本后如下 调演示两种 模式来实现 分布式 查问,并对Distributed Query中 详尽细节进行 注明 。 《2.1》链接服务器 查问 链接服务器配置使 SQL Server 可以对远程服务器上的 OLE DB 数据源执行命令 。链接服务器 存在以下 长处: 拜访远程服务器 。 可以对企业内的异类数据源发出 分布式 查问、更新、命令和事务 。 可以以 类似的 模式确定不同的数据源 下图显示了链接服务器配置的 根底: 现在利用链接服务器 模式实现数据 拜访远程服务器数据库CustomerDB中Users表数据先当地增加LinkServer: 以下是代码片段: -- 构建衔接服务器 第一步 构建衔接 IP 模式来操纵 EXEC sp_addlinkedserver '192.168.10.104' , 'SQL Server' -- 查看链接服务器信息 [测试衔接 顺利] select name , product, provider, data_source, query_timeout, lazy_schema_validation, is_remote_login_enabled, is_rpc_out_enabled from sys.servers where is_linked= 1如面市 构建衔接服务器最 方便 模式 。 构建链接服务器过程其实调用了系统存储过程Sp_addlinkedserver. 第一个参数为Name 其有用来唯一标识链接服务器 。 固然 可以 其余任何有 意思字符串来定义,但我个人 提议 使用远程服务器的IP来标识 。第二个参数是要增加为链接服务器的 OLE DB 数据源的产品名称 。 默许为Null,假如指定”SQL Server“则无需指定 其余参数 。 假如你的当地装有多个数据库实例 。 第一个种 模式就不 实用 。这是就需要用SQL Server2005架构来唯一标识: -- 含架构名 查问数据两种模式 select top 10 * from [192.168.10.104]. wl . 架构名 . 表名 -- 架构名 [采纳默许架构名 ] select top 10 * from [192.168.10.104]. CustomerDB . dbo. Users关于SQL Server 2005架构这个概念众多人 比较 生僻: 在消费者角色设置中需要对指定 拜访数据CustomerDB 存在读写权限:
|