SQL Server中链接服务器将替代远程服务器(2)
来源:asp之家 发布时间:2009-06-15 11:03:00
三、链接服务器的实现方式。
链接服务器的部署是非常简单的。在SQLServer的管理控制台中,只需要通过几个简单的步骤即可。不过在谈具体的配置之前,还必须先要来了解一个新内容,即OLE数据库接口。
上面我们在谈到链接服务器性能的时候,说过管理员可以通过链接服务器来访问呢不同的数据源。其实,这都是OLE数据库接口的功劳。OLE数据库访问接口是用来管理特定数据源并且与其进行交互的工具。其实,他是一个DLL文件,即动态链接库文件。这个文件往往不能够单独运行,但是它允许应用程序共享执行特殊任务所必须的代码和其他内容。而OLE数据源标示可通过OLE来访问特定的数据库。有了OLE的帮助,使得链接服务器不仅可以访问各大品牌的数据库,还可以访问一些非数据库的数据文件,如Excel、带有固定格式的文本文件等等。
而且,OLE接口参数还可以对某些操作进行控制。因为不同的数据库都对标准的SQL语句进行了扩充。也就是说,某些特殊的语法只有特定的数据库系统才能够执行。为了保证SQL语句的通用性,可以在OLE接口参数中进行一些配置,来防止管理员执行一些不兼容的SQL语句。如在OLE接口中,有一个NestedQueries的参数。它主要用来控制是否允许在From子句中潜套Select语句。如果把这个参数设置为0,就表示不允许在From子句中使用嵌套的Select语句。如果非0,则表明访问接口允许在From子句中使用嵌套的Select语句。笔者有时候经常利用这个参数来对一些操作进行控制。如可以通过这个选项,使得数据库管理员能够将某些查询委托给需要在From子句中嵌套Select语句的访问接口。
通过接口还可以控制操作者是否有更新权限,即通过链接服务器访问远程数据库时,能否对数据库进行更新操作。如要进行这个控制,则可以使用NonTransactedUpdates参数。如果这个参数为0,则允许进行更新。反之,则不允许更新。不过如果启用了更新的话,需要注意一个问题。由于访问接口不支持事务,则通过链接服务器更新的数据,将不可恢复。
链接服务器可以采用SQL Server自带的OLE接口,也可以采用第三方的接口。但是,如果采用第三方的OLE数据库接口的话,需要注意运行SQL Server服务的帐户必须具有对安装访问接口的目录以及所有子目录具有读取权限和执行权限。在大部分情况下,笔者建议还是采用数据库自带的OLE接口,以减少配置的工作量。
四、如何定义链接服务器。
在SQL Server数据库中,链接服务器定义主要有两种方式。一是通过数据库自带的存储过程来进行定义;二是通过管理控制台来进行部署。
笔者比较喜欢采用系统存储过程和目录视图来管理链接服务器。如可以通过SP-addlinkedserver存储过程来创建服务器定义。如果需要查看链接服务器的信息,则可以通过SYS.SERVERS系统目录视图进行查询。如果要删除链接服务的话,也可以通过存储过程来删除。
如果初学者觉得通过存储过程与视图的方式不够直观,则可以通过数据库的管理控制台来进行链接服务器的定义。这个步骤也很简单。在数据库的对象资源管理器中,右键单击服务器对象,选择新建,再选择链接服务器即可。如果要删除连接服务,则选中需要删除的链接服务器,选择删除即可。通常情况下,不需要对OLE的接口参数进行调整。如果对于性能、安全等要求比较高,或者有多个管理员同时管理数据库的时候,则可以通过对OLE部分参数进行调整。如笔者上面谈到的控制是否允许更新等相关参数。对于初学者来说,笔者不建议对这些参数进行调整。因为如果调整不得法的话,会导致链接服务器无法正常工作。而且这个错误很难排查。
链接服务器除了可以帮助管理员轻松访问不同的数据源之外,在分布式查询中也特别有用。当用户利用客户端应用程序通过链接服务器执行分布式查询时,数据库将会分析链接服务器传送过来的语句。行集请求的形式可以是对该访问接口执行查询或者从该访问接口直接打开基表。


猜你喜欢
- 一 前言pandas学到分组迭代,那么基础的pandas系列就学的差不多了,自我感觉不错,知识追寻者用pandas处理过一些数据,蛮好用的;
- 最近在看《Effective Python》,里面提到判断字符串或者集合是否为空的原则,原文如下:Don't check for e
- 颜值打分定义可视化图像函数导入三维人脸关键点检测模型导入可视化函数和可视化样式将图像模型输入,获取预测结果BGR转RGB将RGB图像输入模型
- 昨晚今晚写了两晚,总算把Py Port Scanner 写完了,姑且称之为0.1版本,算是一个Python多线程端口扫描工具。水平有限,实话
- 简介表单的操作是Web程序开发中最核心的模块之一,绝大多数的动态交互功能都是通过表单的形式实现的。本文会教大家实现简单的表单操作。普通表单提
- 简介如果你的程序写得有毛病,打开了很多TCP连接,但一直没有关闭,即常见的连接泄露场景,你可能想要在排查问题的过程中,先临时kill一波泄露
- ref:被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的$refs对象上。如果在普通的DOM元素上使用,那么指向的就是普通的DO
- private void Button1_Click(object sender, System.E
- 前言经常在 https://lichess.org/ 上观看大师们玩的国际象棋比赛。这些棋局和棋手的水平超出了我们的想象,如果想知道谁有优势
- 以下为引用的内容: <html> <head> <title>不刷新页面查询的方法&
- 图片的上传上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示
- 1.图像读取使用cv2.imread(filepath,flags)读入图像filepath: 读入图像完整路径(绝对路径,相对路径)fla
- 本文实例讲述了Python实现获取系统临时目录及临时文件的方法。分享给大家供大家参考,具体如下:在开发应用程序的过程中,会有一些临时的信息,
- 锁机制NOLOCK和READPAST的区别。1. 开启一个事务执行插
- 前言网络上各大论坛,尤其是一些图片类型的网站上,在图片加载时均采用了一种名为懒加载的方式,具体表现为,当页面被请求时,只加载可视区域的图片,
- 本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php数组查询元素位置的方法:方法1:利用array_search(
- 前言最近需要读取Excel中的内容,然后进行后续操作,对于这块知识,博主以前以为自己不会涉及到,但是现在一涉及到,第一步就错了,搞了好久。真
- 概述map是基于key-value键值对的无序的集合Go语言中的map是引用类型必须初始化才能使用。语法声明和初始化配合make使用,否则是
- 如下所示:import torchfrom torch.autograd import Variableimport matplotlib.
- Dean Edwards 最近有篇文章很精彩,忍不住在这里翻译下。-- Split --很多 Javascript 框架都提供了自定义事件(