原文:https://blog.csdn.net/u013641136/article/details/50379596

做过一个项目,需要在SQLSERVER创建对ORACLE的DBLINK然后通过OPERQUERY访问ORACLE查询记录并返回到SQLSERVER某表

ORACLE中的数据量在100W行左右,采用insert into T1(X1,X2,X3) SELECT * FROM OPENQUERY(XXXXX)的方式,效率很低,尤其是很多时候是按条件查询,只需要返回几条记录,却需要几十分钟,即便改成insert into T1(X1,X2,X3) SELECT * FROM OPENQUERY(XXXXX) where xxx 也不行。这已然超出效率慢的范畴,而是语句有问题。

后来考虑了一下,慢是因为这算是二次查询,会先将ORACLE中所有数据查询返回到OPERQUERY中,再按条件去OPERQUERY查询,提高效率的方法是将条件放入OPERQUERY中,然而条件并非一个数值,而是另一张临时表,固采用游标的方式,一条一条将临时表中的记录处理为变量,放入OPERQUERY中作为条件执行。果然不会再出现查询3条记录插入SQLSERVER却需要30分钟,只需1秒钟。
语句实例:

declare @itemid nvarchar()
declare auth_cur cursor for select item_number from erp_part_item open auth_cur fetch next from auth_cur into @itemid while (@@fetch_status=)   begin
    DECLARE @TSQL varchar()
    SELECT  @TSQL = 'insert into HISTORY_ITEM(ITEM_NUMBER,ITEM_TEMPLATE,ITEM_DESC,ITEM_UOM,UNIT_WEIGHT,ORG,FLAG,inventory) SELECT * FROM OPENQUERY(TO_ERPZS,''SELECT ITEM_NUMBER,ITEM_TYPE,ITEM_DESCRIPTION,PRIMARY_UOM_CODE,UNIT_WEIGHT,ORGANIZATION_CODE,LOT_FLAG,Inventory_Item_Status_Code from APPS.CUX_PDM_ITEMS_BOM_V where item_number =  ''''' + @itemid + ''''''')'
    EXEC (@TSQL)
    fetch next from auth_cur into @itemid
  end close auth_cur deallocate auth_cur

最新文章

  1. SSD框架训练自己的数据集
  2. hdu 1312(DFS)
  3. 决战大数据之二:CentOS 7 最新JDK 8安装
  4. DIV的绝对居中
  5. 【转载】MySQL索引原理及慢查询优化
  6. XSLT2.0实用的新功能 .(转)
  7. 人一生必看的100部电影(全球最佳电影排名榜TOP250)
  8. Chess---->简单命令框象棋(人VS人)
  9. oracle where与having
  10. 如何用js检测手机是否安装某个app
  11. jQuery 遍历 - siblings() 方法
  12. Codeforces Round #346 (Div. 2) A Round-House
  13. cshtml razor
  14. java获取本机ip地址(写出来的)
  15. Spring 的java 配置方式
  16. python第二天 列表、元组
  17. Ubuntu 下 Sublime 无法输入中文?(已解决)
  18. 【二十二】mysqli事务处理与预处理总结
  19. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-3-Django项目实例
  20. vue性能优化2--引入cdn

热门文章

  1. R 读取xls/xlsx文件
  2. svn中日志不展示解决方法记录
  3. Monit-开源服务器监控工具
  4. MODI的OCR接口
  5. 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) A. Altruistic Amphibians (DP)
  6. [2019牛客多校第二场][E. MAZE]
  7. parent([expr]) 取得一个包含着所有匹配元素的唯一父元素的元素集合。
  8. bbs-admin-自定义admin(一)
  9. mysql查询字段中含有中文
  10. mybatis 多级级联(多级嵌套)