分布式查询

EXEC sp_addlinkedserver @server=‘serverA‘, @srvproduct=‘‘, @provider=‘SQLOLEDB‘, @datasrc=‘192.168.0.28‘
EXEC sp_addlinkedsrvlogin @rmtsrvname=‘serverA‘, @useself=‘false‘, @rmtuser =‘sa‘,@rmtpassword = ‘aaa‘

Exec sp_serveroption ‘serverA‘, ‘lazy schema validation‘, ‘true‘

如何在sql   server中建立与其它sql   server的连接   
  创建一台名为   server2   的链接服务器:   
  use   master   
  exec   sp_addlinkedserver   server2,nsql   server   
  创建一个映射,使用帐号   sa   和密码   password   连接到链接服务器   server2:   
  exec   sp_addlinkedsrvlogin   server2,   false,   null,   sa,   password   
  查询数据:   
  select   *   from   server2.dbname.dbo.tablename   
   
--如果经常访问或数据量大,建议用链接服务器   
    
  --创建链接服务器   
  exec   sp_addlinkedserver     srv_lnk,,sqloledb,远程服务器名或ip地址   
  exec   sp_addlinkedsrvlogin   srv_lnk,false,null,用户名,密码   
  go   
    
  --查询示例   
  select   *   from   srv_lnk.数据库名.dbo.表名   
    
  --导入示例   
  select   *   into   表   from   srv_lnk.数据库名.dbo.表名   
    
  go   
  --处理完成后删除链接服务器   
  exec   sp_dropserver   srv_lnk,droplogins

由于业务逻辑的多样性
经常得在sql server中查询不同数据库中数据
这就产生了分布式查询的需求
现我将开发中遇到的几种查询总结如下:

1.access版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称  
‘ai‘,             
--产品名称               
‘access‘,     
--OLE DB 字符
‘Microsoft.Jet.OLEDB.4.0‘,  
--数据源
--格式:
-- 盘符:\路径\文件名
-- \\网络名\共享名\文件名  (网络版本)
‘d:\testdb\db.mdb‘
GO

--创建链接服务器上远程登录之间的映射
--链接服务器默认设置为用登陆的上下文进行
--现在我们修改为连接链接服务器不需使用任何登录或密码
exec sp_addlinkedsrvlogin ‘ai‘,‘false‘
go

--查询数据
select * from ai...mytable
go

2.excel版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称  
‘ai_ex‘,             
--产品名称               
‘ex‘,     
--OLE DB 字符
‘Microsoft.Jet.OLEDB.4.0‘,  
--数据源
--格式:
-- 盘符:\路径\文件名
-- \\网络名\共享名\文件名  (网络版本)
‘d:\testdb\mybook.xls‘ ,
null,
--OLE DB 提供程序特定的连接字符串
‘Excel 5.0‘
GO

----创建链接服务器上远程登录之间的映射
--链接服务器默认设置为用登陆的上下文进行
--现在我们修改为连接链接服务器不需使用任何登录或密码
exec sp_addlinkedsrvlogin ‘ai_ex‘,‘false‘
go

--查询数据
select * from ai_ex...sheet3$
go

3.ms sql版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称  
‘ai_mssql‘,             
--产品名称               
‘ms‘,     
--OLE DB 字符
‘SQLOLEDB‘,  
--数据源
‘218.204.111.111,3342‘
GO

--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
‘ai_mssql‘,
‘false‘,
NULL,
--远程服务器的登陆用户名
‘zhangzhe‘,
--远程服务器的登陆密码
‘fish2231‘
go

--查询数据
select * from ai_mssql.pubs.dbo.jobs
go

--还有一个更简单的办法
--这种方式在链接服务器建立后,它是默认开放RPC的

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
--这里就用数据源作名称
‘218.204.111.111,3342‘,
‘SQL Server‘
GO

--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
‘218.204.111.111,3342‘,
‘false‘,
NULL,
--远程服务器的登陆用户名
‘zhangzhe‘,
--远程服务器的登陆密码
‘fish2231‘
go

--查询数据
select * from [218.204.253.131,3342].pubs.dbo.jobs
go

4.Oracle版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称  
‘o‘,
--产品名称               
‘Oracle‘,
--OLE DB 字符
‘MSDAORA‘,
--数据源
‘acc‘
GO

--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
‘o‘,
‘false‘,
NULL,
--Oracle服务器的登陆用户名
‘F02M185‘,
--Oracle服务器的登陆密码
‘f02m185185‘
go

--查询数据
--格式:LinkServer..Oracle用户名.表名
--注意用大写,因为在Oracle的数据字典中为大写
select * from o..F02M185.AI
go

时间: 2024-11-08 19:06:03

分布式查询的相关文章

Impala的分布式查询

翻译自<Getting Started with Impala> 分布式查询 分布式查询是impala的核心.曾几何时,你需要研究并行计算,才能开始进行深奥而晦涩的操作.现在,有运行在Hadoop上面的Impala,你只需要...一台笔记本电脑.理想情况下,一个IT部门也会有运行着Cloudera Distribution with Hadoop (CDH)的Linux服务器集群.但在紧急情况下,有一个虚拟机的单独的笔记本电脑就能够进行开发和设计的工作. 当一个Impala查询在一个Hadoo

sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)

由于业务逻辑的多样性,经常得在sql server中查询不同数据库中数据,这就产生了分布式查询的需求 现我将开发中遇到的几种查询总结如下: 1.access版本 --建立连接服务器 EXEC sp_addlinkedserver --要创建的链接服务器名称  'ai',             --产品名称               'access',     --OLE DB 字符 'Microsoft.Jet.OLEDB.4.0',  --数据源 --格式: -- 盘符:\路径\文件名 -

Oracle 跨库 查询 复制表数据 分布式查询

方法一: 在眼下绝大部分数据库有分布式查询的须要.以下简单的介绍怎样在oracle中配置实现跨库訪问. 比方如今有2个数据库服务器,安装了2个数据库.数据库server A和B.如今来实如今A库中訪问B的数据库. 第一步.配置Aserver端的tnsnames.ora文件(TNSNAMES.ORA Network Configuration File),该文件存放的位置为: $ORACLE_HOME/network/admin/tnsnames.ora 加入例如以下行,当中DBLINK为连接名(

SQL分布式查询、跨数据库查询

--[方法1]连接服务器方法 --step1 创建链接服务器 exec sp_addlinkedserver     'srv_lnk','','SQLOLEDB', 'ip地址' exec sp_addlinkedsrvlogin 'srv_lnk', 'false ',null, 'sql登陆名', '密码' --exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB', '192.168.1.58' --exec sp_addlinkedsrvlogi

T-SQL 分布式查询

--返回本地服务器中定义的链接服务器列表. EXEC sys.sp_linkedservers /* 创建或更新 SQL Server 本地实例上的登录名与远程服务器中安全帐户之间的映射. 当用户登录到本地服务器并执行分布式查询,以访问链接服务器上的表时, 本地服务器必须登录链接服务器上,代表该用户访问该表. 使用 sp_addlinkedsrvlogin 来指定本地服务器用于登录链接服务器的登录凭据 */ EXEC sys.sp_addlinkedsrvlogin @rmtsrvname =

mongodb分布式查询

分布式查询:mongodb的分布式模型分为replica set和sharded cluster. sharded集群中将read根据sharding key(分片键)转发到指定的shard节点,read操作非常高效:当然如果query中没有包含sharding key,那么此次read将会被转发到所有的shard节点上,并有mongos server负责merge结果(包括排序),所以这种情况性能较差(俗称scatter.gather),对于大型集群,这种查询通常是不可行的. 对于replic

SQLServer跨库查询--分布式查询

出处:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html --用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) 在跨库查询时需要启用Ad Hoc Distributed Queries启用Ad Hoc Distri

SQLServer跨库查询--分布式查询[转载]

--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) --导入示例 select * into 表 from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) --创建链接服务器 exec sp_addlinkedserve

Presto: 可以处理PB级别数据的分布式SQL查询引擎

2012年秋季Facebook启动了Presto,Presto的目的是在几百PB级别数据量上面进行准实时分析.在摒弃了一些外部项目以后,Facebook准备开发他们自己的分布式查询引擎.Presto的语法基于ANSI SQL,大多数分布式查询引擎需要用户去学习一种新的语法,有的语法类似SQL,但是没有一种是和真正的SQL一样被人们所熟悉,并且有详尽的文档.Facebook希望这个决定能够使得培训新用户变得更容易更快速.依赖于 ANSI SQL也让Presto能够利用的现存的第三方工具. 在内部,