Chinaunix

标题: 关于ORACLE 使用UPDATE的速度问题 [打印本页]

作者: babypig    时间: 2004-06-10 14:32
标题: 关于ORACLE 使用UPDATE的速度问题
现有这样一个更新:
create tabel tmp1
(
        yhbh varchar(10)
        fy number(12,2)
)
有30万条记录!
create table tmp2
(
        yhbh varchar(10)
        fy number(12,2)
)
有180万条记录!

update tmp1 a
set a.fy = (select b.fy from tmp2 b where a.yhbh = b.yhbh)

这条语句执行了6分钟!
环境是:服务器是sum的(只知道是10多万一台的,具体配置不知道……不好意思),缓冲池也有800M的空间,init.ora里的参数配置不算太低。但执行时间是不是有点慢啊!同样的更新,我在mssqlserver 里只用了8秒!
作者: renxiao2003    时间: 2004-06-10 14:40
标题: 关于ORACLE 使用UPDATE的速度问题
呵呵,是吗?你看看你的两个表是否建立了索引啊?就是在YHBH这个字段上!还有回滚段啊。
作者: yaming    时间: 2004-06-10 14:56
标题: 关于ORACLE 使用UPDATE的速度问题
对于少量表的操作,sqlserver比oracle或者sybase要快很多,即使条件完全一样,俺做过测试!
oracle的优势是大量的并发操作,是不是为了一致性、安全性、可维护性等等因素大型数据库要付出更多资源?
作者: babypig    时间: 2004-06-10 15:32
标题: 关于ORACLE 使用UPDATE的速度问题
谢谢两位的答复,我在较大数据的表中建了索引,但……好像不会影响这么大吧……现在都不知道什么原因。郁闷啊!还有在做数据量大的查询时,如2000万条记录,都是查到一半就提示出错:end of file ,communication channel。
作者: renxiao2003    时间: 2004-06-10 18:36
标题: 关于ORACLE 使用UPDATE的速度问题
是的,ORA-03113错误,比较烦人的。
作者: zhp317    时间: 2004-06-11 14:22
标题: 关于ORACLE 使用UPDATE的速度问题
换个写法试试。
update tmp1 a
set a.fy = b.fy
from  tmp1 a  tmp2 b
where a.yhbh = b.yhbh)
作者: admwby1hy    时间: 2004-06-11 15:00
标题: 关于ORACLE 使用UPDATE的速度问题
原帖由 "zhp317" 发表:
换个写法试试。
update tmp1 a
set a.fy = b.fy
from  tmp1 a  tmp2 b
where a.yhbh = b.yhbh)


这个对吗,oracle能这么写吗?
作者: babypig    时间: 2004-06-11 17:13
标题: 关于ORACLE 使用UPDATE的速度问题
update tmp1 a
set a.fy = b.fy
from tmp1 a tmp2 b
where a.yhbh = b.yhbh)

这是mssql的写法,oracle是不支持的。
作者: babypig    时间: 2004-07-08 11:03
标题: 关于ORACLE 使用UPDATE的速度问题
UP一下
作者: stoneskin    时间: 2004-07-08 11:44
标题: 关于ORACLE 使用UPDATE的速度问题
update tmp1 a
set a.fy = (select b.fy from tmp2 b where a.yhbh = b.yhbh)

我觉得问题可能是出现在每次update一条记录都会执行一次select b.fy from tmp2 b where a.yhbh = b.yhbh ,更新30万条记录就需要执行
30万次的查询,才花6分钟,应该不算太久吧.hehe.
一点愚见,也不知道是不是那么回事.
不过为什么mssqlserver会那么快就搞不清楚了.
作者: babypig    时间: 2004-07-15 10:20
标题: 关于ORACLE 使用UPDATE的速度问题
那有没有更好的update语法呢?这种速度,会死人啊!
作者: lchhcllch    时间: 2004-07-16 09:43
标题: 关于ORACLE 使用UPDATE的速度问题
如果一次性的外挂去做,速度就不算什么,想快就写一个应用程序(比如OCI的),那样你就很快了.
作者: babypig    时间: 2004-07-19 11:33
标题: 关于ORACLE 使用UPDATE的速度问题
help,help,help
作者: babypig    时间: 2004-07-24 16:51
标题: 关于ORACLE 使用UPDATE的速度问题
555555……没有人能帮忙吗?大家觉得还需要什么条件可以提出啊!如果我说的运行环境不够全面的话。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2