编辑器加载中...
项目中需要用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,其它的一些巧妙的方式 |
试试Oracle Linked Server:Setting Up an Oracle Linked Server
这不还是DBLINK的方式吗?而且同样使用的是MSDAORA驱动。貌似我用的就是这个方法,只是我查询是用openquery而已,上文中描述的查询方式我也用过,效率更低
采用导入函数变一下可快很多,只是时间函数怎么导不知。希望有人指。本方案是引用网上的非我之功
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)