update 速度慢还要分情况呢!!
你的sql语句是什么?!!!!

解决方案 »

  1.   

    在select/delete/update后写/*+ hint */ 
    如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1... 
    注意/*和+之间不能有空格 
    如用hint指定使用某个索引   select /*+ index(cbotab) */ col1 from cbotab; 
      select /*+ index(cbotab cbotab1) */ col1 from cbotab; 
      select /*+ index(a cbotab1) */ col1 from cbotab a; 
      其中 
       TABLE_NAME是必须要写的,且如果在查询中使用了表的别名,在hint也要用表的别名来代替表名; 
    INDEX_NAME可以不必写,Oracle会根据统计值选一个索引; 
       如果索引名或表名写错了,那这个hint就会被忽略;
      

  2.   

    update慢的原因可能有很多的情况.举例说以下:
        与索引有关系:数据量很大的表,在相关字段建立索引可以提高查询速度,但是当在有索引的表上插入或更新信息时,所以起到一个反作用.所以在大批量更新或插入数据的时候先将所以删除,插入更新完成后再建立索引.
        与回滚段关系:在事务执行的数据量比较大的时候要及时提交.保持回滚段有足够的容量.所以你不能一次更新138万条的记录,分批更新或分批提交.可以每次更新十万条数据提交一次.
        ......