insert into gis select * from typhoon_insert_temp;
我看了下执行计划是一样的,为什么有的高手说上面的要快速一点呢?
而且/**//*+append*/ 在plsql中我怎么看他是被注释掉的?
5 个解决方案
#1
是/*+ append */
要想速度更快,根据具体情况,可配合nologging和parallel来。
要想速度更快,根据具体情况,可配合nologging和parallel来。
#2
你看的主要是执行计划里的执行路径吧,这个hint主要是 优化insert的时候,直接在数据块后面做append,从而会提高速度。对于执行路径没有差别。如果可以去掉目标表的index的话,也会提高insert速度。
#3
1、2楼说的有理
#4
/*+APPEND* 配合NOLOGGING 效果更好
给你附带另外一些东西 网上可以搜到
24. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
给你附带另外一些东西 网上可以搜到
24. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
#5
批量插入 你可以试试用 BULK CONNECT 和 forall 结合起来使用
#1
是/*+ append */
要想速度更快,根据具体情况,可配合nologging和parallel来。
要想速度更快,根据具体情况,可配合nologging和parallel来。
#2
你看的主要是执行计划里的执行路径吧,这个hint主要是 优化insert的时候,直接在数据块后面做append,从而会提高速度。对于执行路径没有差别。如果可以去掉目标表的index的话,也会提高insert速度。
#3
1、2楼说的有理
#4
/*+APPEND* 配合NOLOGGING 效果更好
给你附带另外一些东西 网上可以搜到
24. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
给你附带另外一些东西 网上可以搜到
24. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
#5
批量插入 你可以试试用 BULK CONNECT 和 forall 结合起来使用