ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10923|回复: 109

[精华] update或insert 140万数据的效率太低,怎么回事?? [复制链接]

注册会员

中级会员

精华贴数
2
技术积分
494
社区积分
4
注册时间
2002-6-25
论坛徽章:
0
发表于 2003-7-8 12:08:55 |显示全部楼层
数据库里有这样一张表test,表上有一个pk及4个索引,其中,这个pk由五个字段组成(col1,col2,col3,col4,col5),4个索引分别有4个字段,index1:col1;   index2:col2;   index3:col7;index4:col8;  index5:col9;(其中,主键的5个字段中有2个单独有索引的,就是col1和col2);数据库是8.1.7;

现在,我进行这样的操作,就是根据主键来判断是insert还是update 140万数据,(判断:主键相同的就update,否则就insert),但效率非常的低下,从昨晚9:40跑到今天上午11:50才跑完,当然,对这个表的这种操作这是第一次跑,以前没跑过;

但是,我的库上还有其他的表,也有主键和索引(只是主键的字段数和索引数可能不同),但操作差不多的数据时,都不要这么长的时间,只是对test表的操作数据奇慢,不知什么原因???有没有哪位以前有过类似的问题呢?可能问题出在那里呢?

注册会员

中级会员

精华贴数
0
技术积分
666
社区积分
2
注册时间
2003-3-10
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
发表于 2003-7-8 12:31:12 |显示全部楼层
带有索引的时候的update或者insert操作数据,应该先删除索引,等到数据更新完毕,然后重新建立索引!

使用道具 举报

注册会员

中级会员

精华贴数
2
技术积分
494
社区积分
4
注册时间
2002-6-25
论坛徽章:
0
发表于 2003-7-8 13:02:48 |显示全部楼层
首先,我的库里还有其他的表,也是有索引的,但就是这一张表做这样的操作特别慢,其他的都很快的??

还有,即使按你这个办法,先删除索引,等到数据更新完毕,然后重新建立索引,如果这个表记录很多的话,估计效率也高不到哪里吧?

使用道具 举报

注册会员

中级会员

精华贴数
2
技术积分
494
社区积分
4
注册时间
2002-6-25
论坛徽章:
0
发表于 2003-7-8 14:35:21 |显示全部楼层
就这个问题,想问各位dx:
做insert或update时,数据库的哪个参数对这样的操作有最直接的影响?或者,那些方面对它有最直接的影响?

我想知道这个参数后,试着将它稍微调大在看看效率!

使用道具 举报

注册会员

一般会员

精华贴数
0
技术积分
214
社区积分
0
注册时间
2003-1-20
论坛徽章:
0
发表于 2003-7-8 14:44:28 |显示全部楼层
关注

使用道具 举报

注册会员

中级会员

精华贴数
2
技术积分
494
社区积分
4
注册时间
2002-6-25
论坛徽章:
0
发表于 2003-7-8 16:08:15 |显示全部楼层
回滚段的大小会有影响吗??
因为,可能同一时间有对几张表有insert或update操作,回滚段太小会防碍到速度吗?(进行操作的时候是没有报回滚段小等之类的错误的)

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
623
社区积分
23
注册时间
2001-11-4
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
发表于 2003-7-8 16:15:29 |显示全部楼层
1.在这张表上是不是有外键?
一般在做主外键检查时候会很慢。
如果可以你可以停掉外键。
2.是否有trigger以及其他之类的。
3.你可以看一下你的update语句执行计划,是否使用pk的索引。
如果是table scan,应该是有影响的。
至于其他的,只有你将sql语句贴出来,才能分析。

使用道具 举报

注册会员

中级会员

精华贴数
2
技术积分
494
社区积分
4
注册时间
2002-6-25
论坛徽章:
0
发表于 2003-7-8 16:15:45 |显示全部楼层
请问各位,怎样知道一个回滚段空间现在使用了多少??还剩下多少空间,从而判断回滚段是否太小了??

还有,谢谢楼上的:表上没有任何外键和trigger!

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
314
社区积分
3
注册时间
2003-6-24
论坛徽章:
0
发表于 2003-7-8 16:38:31 |显示全部楼层
oracle console是最简单的方法,我做insert 900万只用了不到一个小时,我的回滚段是10G。也建了索引。

使用道具 举报

注册会员

一般会员

精华贴数
0
技术积分
94
社区积分
0
注册时间
2003-6-29
论坛徽章:
0
发表于 2003-7-8 16:40:14 |显示全部楼层

只能帮你UP了

使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部