科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道细化解析:如何正确掌握分布式查询构架

细化解析:如何正确掌握分布式查询构架

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

系统存储过程 sp_addlinkedserver 和sp_addlinkedsrvlogin 用于给 OLE DB 数据源提供服务器名称。可以使用由四个部分构成的名称在 Transact-SQL 语句中引用这些链接服务器中的对象。

作者:赛迪网 limeinan 来源:天新网 2008年3月27日

关键字: Mssql SQL SQL Server 数据库

  • 评论
  • 分享微博
  • 分享邮件

Microsoft® SQL Server™ 2000 支持两种在 Transact-SQL 语句中引用异类 OLE DB 数据源的方法:

链接服务器名称

系统存储过程 sp_addlinkedserver 和sp_addlinkedsrvlogin 用于给 OLE DB 数据源提供服务器名称。可以使用由四个部分构成的名称在 Transact-SQL 语句中引用这些链接服务器中的对象。例如,如果链接服务器的名称 DeptSQLSrvr 是用 SQL Server 2000 的另一个复本定义的,下面的语句引用该服务器上的一个表:

SELECT * FROM DeptSQLSrvr.Northwind.dbo.Employees

也可以在 OPENQUERY 语句中指定链接服务器的名称以从 OLE DB 数据源打开一个行集。之后,可以在 Transact-SQL 语句中像引用表一样引用该行集。

特殊连接器名称

在很少引用数据源时,OPENROWSET 或 OPENDATASOURCE 函数是用连接到链接服务器时所需的信息指定的。之后,可以在 Transact-SQL 中使用与引用表相同的方法引用行集:

SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\Northwind.mdb';'Admin';'';
Employees)

SQL Server 2000 使用 OLE DB 在关系引擎和存储引擎之间通讯。关系引擎将每个 Transact-SQL 语句分解为一系列操作,这些操作在由存储引擎从基表打开的简单 OLE DB 行集上执行。这意味着关系引擎也可以在任何 OLE DB 数据源上打开简单 OLE DB 行集。

关系引擎使用 OLE DB API 打开链接服务器上的行集,以提取行和对事务进行管理。

对于每个作为链接服务器访问的 OLE DB 数据源,运行 SQL Server 的服务器上必须有 OLE DB 提供程序。在特定 OLE DB 数据源上可执行哪些 Transact-SQL 操作取决于 OLE DB 提供程序的功能。

只要可能,SQL Server 就会将联接、限制、投影、排序和分组等关系操作推入 OLE DB 数据源。默认情况下,SQL Server 不将基表扫描进 SQL Server,也不自己执行关系操作。SQL Server 查询 OLE DB 提供程序以确定它支持的 SQL 语法级别,并根据此信息将尽可能多的关系操作推给提供程序。

SQL Server 2000 指定 OLE DB 提供程序返回统计信息的机制,该统计信息表明键值在 OLE DB 数据源内的分布情况。这使 SQL Server 查询优化器可以根据每条 SQL 语句的要求,更好地分析数据源中的数据模式,从而提高查询优化器生成最佳执行计划的能力。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章