update 速度变得很慢应该怎么办 update 速度慢还要分情况呢!!你的sql语句是什么?!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在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就会被忽略; update慢的原因可能有很多的情况.举例说以下: 与索引有关系:数据量很大的表,在相关字段建立索引可以提高查询速度,但是当在有索引的表上插入或更新信息时,所以起到一个反作用.所以在大批量更新或插入数据的时候先将所以删除,插入更新完成后再建立索引. 与回滚段关系:在事务执行的数据量比较大的时候要及时提交.保持回滚段有足够的容量.所以你不能一次更新138万条的记录,分批更新或分批提交.可以每次更新十万条数据提交一次. ...... oracle无法启动服务问题 isql*plus,isql*plus dba和EM之间有什么区别啊 oracle数据导出问题 oracle存储过程 临时表 oracle10g rownum与order by的问题 oracle定时器(jop) 急求一sql写法,谢谢!!! LONG RAW ->BLOB 又一个小问题,麻烦看下,刚开始就是这样. sql语句怎么写啊,头疼 会话的执行时间受限制嘛? oracle10g 导入的问题
如 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就会被忽略;
与索引有关系:数据量很大的表,在相关字段建立索引可以提高查询速度,但是当在有索引的表上插入或更新信息时,所以起到一个反作用.所以在大批量更新或插入数据的时候先将所以删除,插入更新完成后再建立索引.
与回滚段关系:在事务执行的数据量比较大的时候要及时提交.保持回滚段有足够的容量.所以你不能一次更新138万条的记录,分批更新或分批提交.可以每次更新十万条数据提交一次.
......