急求:分布式查询问题

 192.168.1.100上有两个存储过程,ProcA和ProcB,
ProcA调用了ProcB,
ProcB中调用了192.168.1.200上某数据库的表进行查询
在192.168.1.100的查询分析器里运行ProcB,结果和速度都很正常
在192.168.1.100的查询分析器里运行ProcA,等待非常久都没有结果,造成查询分析器死掉

存储过程如下:
CREATE    PROCEDURE  dbo.ProcB
AS
Begin
 SELECT Holidayday FROM [192.168.1.200].CMS.dbo.outtime  
END
GO

CREATE    PROCEDURE  dbo.ProcA
AS
BEGIN
 create table #tbl (Holidayday datetime)
 insert into #tbl exec ProcB
 select * from #tbl
 drop table #tbl
END
GO

把ProcB中调用192.168.1.200表的语句用本地数据库表代替(也就是不存在分布式查询),运行
ProcA和ProcB都很正常,存储过程修改如下:
CREATE    PROCEDURE  dbo.ProcB
AS
Begin
 -----------SELECT Holidayday FROM [192.168.1.200].CMS.dbo.outtime  
 SELECT Holidayday FROM CMS.dbo.tmfHolidaySched_HAI
END
GO

CREATE    PROCEDURE  dbo.ProcA
AS
BEGIN
 create table #tbl (Holidayday datetime)
 insert into #tbl exec ProcB
 select * from #tbl
 drop table #tbl
END
GO

我还做了另外一个测试,存储过程修改如下,就是调用内嵌存储过程时,不进行数据集插入表操作,这样也能顺利运行,但是这样就无法获得子存储过程返回的数据集了:
CREATE    PROCEDURE  dbo.ProcB
AS
Begin
 SELECT Holidayday FROM [192.168.1.200].CMS.dbo.outtime  
END
GO

CREATE    PROCEDURE  dbo.ProcA
AS
BEGIN
 create table #tbl (Holidayday datetime)
 exec ProcB
 select * from #tbl
 drop table #tbl
END
GO


不知道究竟什么原因造成的,我想跟分布式查询可能有一定关系,还请各位赐教!!多谢了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值