???大侠们帮忙啊―sqlServer远程物化视图

树猫 2013-11-08 06:10:24
要建立一个连接远程DB的物化试图,sqlServer2012支持吗?
本地数据库为DB_LOCAL,远程数据库假设为DB_REMOTE。2个DB都是sqlServer。
现在要在本地的DB_LOCAL上建立一个物化视图,假设为VW_CLIENT,但是该视图的数据来自
远程的DB_REMOTE。
我试着建了一下。总是提示说不支持远程访问。

有无大侠有类似经验,还请赐教啊。
注意是SqlServer啊,不要拿Oracle的东西给我说。
...全文
582 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2013-11-10
  • 打赏
  • 举报
回复
引用 9 楼 freecs 的回复:
WITH SCHEMABINDING这个是必需的,因为数据量是几百万。 如果没有索引,操作的性能会非常差,客户无法接受。
实在不行,要不就是通过链接服务器 + 触发器, 要不就通过上面说的数据库复制技术中的事务复制,来实现同步数据。
szm341 2013-11-09
  • 打赏
  • 举报
回复
引用 7 楼 freecs 的回复:
我试验过,如果是普通视图,没有问题。 但是如果是索引视图(WITH SCHEMABINDING),就出错了。
是的,WITH SCHEMABINDING这个选项要求必须是本地的实体表 一定要用这个的话,就需要发布订阅功能来实现本地复制一份实体副本 否则的话,就不要用WITH SCHEMABINDING选项,也一样可以作为远程视图
树猫 2013-11-09
  • 打赏
  • 举报
回复
我试验过,如果是普通视图,没有问题。 但是如果是索引视图(WITH SCHEMABINDING),就出错了。
szm341 2013-11-09
  • 打赏
  • 举报
回复
引用 9 楼 freecs 的回复:
WITH SCHEMABINDING这个是必需的,因为数据量是几百万。 如果没有索引,操作的性能会非常差,客户无法接受。
所以这个你最好做成发布订阅形式,这样可以把原表的索引也一并复制过去 你要是执意使用远程视图,那就等其他大神路过吧~
树猫 2013-11-09
  • 打赏
  • 举报
回复
WITH SCHEMABINDING这个是必需的,因为数据量是几百万。 如果没有索引,操作的性能会非常差,客户无法接受。
szm341 2013-11-08
  • 打赏
  • 举报
回复
额。。原来你是想把远程视图在本地物理映射啊 这个好像是不可以,一般这功能都是发布订阅功能做的吧
LongRui888 2013-11-08
  • 打赏
  • 举报
回复
引用 楼主 freecs 的回复:
要建立一个连接远程DB的物化试图,sqlServer2012支持吗? 本地数据库为DB_LOCAL,远程数据库假设为DB_REMOTE。2个DB都是sqlServer。 现在要在本地的DB_LOCAL上建立一个物化视图,假设为VW_CLIENT,但是该视图的数据来自 远程的DB_REMOTE。 我试着建了一下。总是提示说不支持远程访问。 有无大侠有类似经验,还请赐教啊。 注意是SqlServer啊,不要拿Oracle的东西给我说。
我做了一个实验,在sql server 2008R2上的,也是报了和你一样的错误,在sql server上应该还不支持远程的索引视图(物化视图):


--在本地机器上执行
--1.建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'remote_Link',
                                   @srvproduct='ms', 
                                   @provider=N'SQLNCLI',                                    
                                   @datasrc=N'192.168.1.106,14335'  --远程

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'remote_Link',
                                    @useself=N'False',
                                    @locallogin=NULL,
                                    @rmtuser=N'sa',    --用户名
                                    @rmtpassword='yupeigu'  --密码
  


--2.这段代码在远程服务器行执行:
create database DB_REMOTE
go

use DB_REMOTE
go

create table tb_client(id int,vname nvarchar(20))

insert into tb_client
values(1,'DB_REMOTE')



--下面的代码都在本地机器上执行                                    
--3.查询远程表
select * 
from [remote_Link].DB_REMOTE.dbo.tb_client
/*
id	vname
1	DB_REMOTE
*/


if exists(select * from sys.views where name = 'vw_client')
   drop view vw_client
go

--4.创建视图
create view dbo.vw_client
WITH SCHEMABINDING
as

select ID,vname
from [remote_Link].DB_REMOTE.dbo.tb_client
go
/*
消息 2014,级别 16,状态 1,过程 vw_client,第 7 行
不允许从绑定到架构的对象进行远程访问。
*/


LongRui888 2013-11-08
  • 打赏
  • 举报
回复
你要建的是普通的视图,还是索引视图(物化视图)
LongRui888 2013-11-08
  • 打赏
  • 举报
回复
引用 楼主 freecs 的回复:
要建立一个连接远程DB的物化试图,sqlServer2012支持吗? 本地数据库为DB_LOCAL,远程数据库假设为DB_REMOTE。2个DB都是sqlServer。 现在要在本地的DB_LOCAL上建立一个物化视图,假设为VW_CLIENT,但是该视图的数据来自 远程的DB_REMOTE。 我试着建了一下。总是提示说不支持远程访问。 有无大侠有类似经验,还请赐教啊。 注意是SqlServer啊,不要拿Oracle的东西给我说。
你说的物化视图是oracle的概念把,在sql server中成为“索引视图”,这个不仅仅是视图,而且是包含实体的数据。
树猫 2013-11-08
  • 打赏
  • 举报
回复
--远程数据库连接 EXEC SP_ADDLINKEDSERVER 'SXYLINK', ' ', 'SQLOLEDB', 'XYZAPP\VVV_SQLSERVER2012'; --远程DB EXEC SP_ADDLINKEDSRVLOGIN 'SXYLINK', 'false ',null, 'sa', 'sa_12345678'; --远程DB数据检索(可以正常执行) --SELECT * FROM SXYLINK.SABU.DBO.MST_CLIENT; --物化视图建立(这一步出错了) CREATE VIEW VW_CLIENT WITH SCHEMABINDING AS SELECT CLIENT_CODE ,NAME FROM SXYLINK.SABU.DBO.MST_CLIENT; --建立索引 CREATE UNIQUE CLUSTERED INDEX IDX_VWCLIENT ON VW_CLIENT(CLIENT_CODE); 远程能连上,因为第3行的远程DB检索可以正常执行,问题是物化视图的创建,出现如下错误: Remote access is not allowed from within a schema-bound object. (似乎SqlServer不支持跨数据库的物化视图)
szm341 2013-11-08
  • 打赏
  • 举报
回复
你是怎么建的不支持远程访问? 一般创建链接服务器就ok了
已经博主授权,源码转载自 https://pan.quark.cn/s/a50517ff69e2 ### Path Ranking 算法解析 #### 知识图谱推理基础 在对Path Ranking算法进行深入分析之前,有必要简要回顾知识图谱的基本概念及其重要性。 **知识表示**是指将现实世界中的各类知识转化成计算机能够存储和计算的形式。这种转化通常涉及将自然语言或非结构化数据转化为结构化数据,以便于计算机进行处理和分析。 **知识图谱**是以结构化的形式描述客观世界中概念、实体及其相互关系的模型。通过构建知识图谱,可以更清晰地理解数据之间的联系,这对于搜索引擎优化、智能问答系统等应用领域具有重要作用。例如,谷歌自2012年起就在其搜索结果中广泛采用了知识图谱技术,显著改善了用户的搜索体验。目前,知名的开放知识图谱包括Freebase、Yago、DBpedia和NELL等。 然而,知识图谱也面临着一些挑战,其中最为突出的是**不完备性**(关系缺失、属性缺失)和**错误关系**的存在。为了应对这些问题,**知识图谱推理**应运而生,即从已有的知识图谱中推导出新的实体间关系,这一过程也被称为**知识图谱补全**。 #### 知识图谱补全策略 知识图谱补全主要分为两大类:基于表示学习的方法和基于图特征的方法。 1. **基于表示学习的方法**:这类方法将知识图谱中的实体与关系映射到一个低维的连续向量空间中,以便于捕捉实体间的潜在语义特征。典型的模型有TransE等。这种方法的优势在于能够高效处理大规模数据,并且在许多情况下取得了良好的效果。 2. **基于图特征的方法**:这类方法利用从知识图谱中提取的图特征来进行预测。具体来说,就是通过观察实体间的路径特征来预测实体间的关...

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧