首页 新闻 会员 周边

求个高效的sqlserver连oracle的方法

0
悬赏园豆:20 [待解决问题]

编辑器加载中...

项目中需要用sqlserver连接oracle进行操作,用的openquery的方式,
在sqlserver执行一个select * from openquery('', 'select * from T_ORACLE') 大约2S
而在ORACLE中执行select * from T_ORACLE仅需0.2S
这只是一个列子,来说明用这种方式进行连接效率很低,因为的库中有些存储过程需要执行很多10 个SQL,按这样的效率下去几乎要20S,很难接受,优化了很久也没解决,感觉现在思想被禁锢了,认为这样的连接方式是其瓶颈。

有其他的解决方案吗?

其它的连接ORACLE的方式,或者不仅仅禁锢于SQLSERVER连接服务器连ORACLE,其它的一些巧妙的方式
敏而好学的主页 敏而好学 | 初学一级 | 园豆:147
提问于:2011-09-22 15:05
< >
分享
所有回答(2)
0

试试Oracle Linked Server:Setting Up an Oracle Linked Server

dudu | 园豆:30994 (高人七级) | 2011-09-22 15:16

这不还是DBLINK的方式吗?而且同样使用的是MSDAORA驱动。貌似我用的就是这个方法,只是我查询是用openquery而已,上文中描述的查询方式我也用过,效率更低

支持(0) 反对(0) 敏而好学 | 园豆:147 (初学一级) | 2011-09-22 16:41
0

采用导入函数变一下可快很多,只是时间函数怎么导不知。希望有人指。本方案是引用网上的非我之功

DECLARE @Sql VARCHAR(1000)
DECLARE @organizationID VARCHAR(10)
SELECT @organizationID = (SELECT ORGANIZATION_ID FROM MYORGS WHERE ORGANIZATION_NAME = 'MMT')
SET @Sql = 'SELECT * from 表名 where organization_id ='+@organizationID
SET @Sql = 'SELECT * FROM OPENQUERY(数据库名, ''' + REPLACE(@Sql, '''', '''''') + ''')'
EXEC(@Sql)

 

江洋一小鱼 | 园豆:202 (菜鸟二级) | 2012-08-07 14:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册