楼主: fromeast

[精华] Insert 都做了什么?

[复制链接]
论坛徽章:
5
授权会员
日期:2005-10-30 17:05:33
11#
发表于 2002-9-28 13:24 | 只看该作者
你的回滚段的数目和大小,redo buffer和redo logfile的大小?
同时检查你的alert日志看看有没有checkpoint not complete出现。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
12#
发表于 2002-9-28 15:28 | 只看该作者

如果说逻辑读太大

到底是多大?
给一个量化标准

一次插入内容是插入多少个分区?
索引是怎么建的?全局的和还是局部的

不知道和raid5有没有关系

使用道具 举报

回复
论坛徽章:
10
ITPUB元老
日期:2005-02-28 12:57:002010广州亚运会纪念徽章:保龄球
日期:2011-01-30 11:57:03祖国60周年纪念徽章
日期:2009-10-09 08:28:00参与2009年中国云计算大会纪念
日期:2009-06-05 10:02:28ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53会员2006贡献徽章
日期:2006-04-17 13:46:34授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
13#
 楼主| 发表于 2002-9-28 15:56 | 只看该作者

Re: 如果说逻辑读太大

最初由 biti_rainy 发布
[B]到底是多大?
给一个量化标准

一次插入内容是插入多少个分区?
索引是怎么建的?全局的和还是局部的

不知道和raid5有没有关系 [/B]


TKPROF的分析结果(8组平均Logical Read):
516.83 Kbytes/s
10.16 Kbytes/row

实际上这是一个批处理系统,多个会话集中、并行工作。
是按地区分区的,一个会话只处理一个地区的数据。一个会话的N次插入都是插入同一个分区,不同会话插入不同分区。

索引就是普通的唯一索引。
???怎样查是全局的还是局部的???

使用道具 举报

回复
论坛徽章:
10
ITPUB元老
日期:2005-02-28 12:57:002010广州亚运会纪念徽章:保龄球
日期:2011-01-30 11:57:03祖国60周年纪念徽章
日期:2009-10-09 08:28:00参与2009年中国云计算大会纪念
日期:2009-06-05 10:02:28ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53会员2006贡献徽章
日期:2006-04-17 13:46:34授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
14#
 楼主| 发表于 2002-9-28 16:36 | 只看该作者

Logical Read的对照标准

对照标准是Logical Read/Rows,即平均每行处理的Logical Read。如果这个参数大,那么每行消耗的CPU就会多,每行消耗的DISK I/O也可能多,最后的结果就是处理速度(行/s)降低。

事实上我就是为处理速度的异常而发愁,数据量多的速度反而快!

在处理t_2表的同时,还处理t_1表。t_1表的结构、存储、索引均于t_2表相同,数据量比t_2表稍大,一次会话插入的行数也比t_2表稍多。

但t_1表的处理速度是t_2表的3.7倍!

下面是t_1表的Logic Read,也是8组平均:
1475.75 Kbytes/s
4.83 Kbytes/row

可以看出,t_1的Logical Read/rows大约是t_2的二分之一。

下面是其他统计结果的对照:
   Disk/Rows   CPU/Rows   Total Time/rows
t_1 51.625 K/row  0.0002938s/row   0.00327
t_2 355.125 K/row 0.0005475s/row   0.01965

我怀疑Logical Read/row大,引起Disk/row大,造成每行处理的时间长,最后的结果是每秒处理的行数减少,也就是处理速度慢。

这就是我关心Logical Read的原因

使用道具 举报

回复
论坛徽章:
10
ITPUB元老
日期:2005-02-28 12:57:002010广州亚运会纪念徽章:保龄球
日期:2011-01-30 11:57:03祖国60周年纪念徽章
日期:2009-10-09 08:28:00参与2009年中国云计算大会纪念
日期:2009-06-05 10:02:28ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53会员2006贡献徽章
日期:2006-04-17 13:46:34授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
15#
 楼主| 发表于 2002-9-28 16:54 | 只看该作者

回wang2008:查出来了!

最初由 wang2008 发布
[B]你的回滚段的数目和大小,redo buffer和redo logfile的大小?
同时检查你的alert日志看看有没有checkpoint not complete出现。 [/B]


回滚段:
除去SYSTEM,一共24个回滚段。
其中有19个100M的,4个2M的,1个20M的

Redo Log File:
10组,每组300M

Redo Log Buffer:
1638400

Alert Log File:
3个小时内出现3次checkpoint not complete

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
16#
发表于 2002-9-28 17:22 | 只看该作者

一点建议

除去SYSTEM,一共24个回滚段。
其中有19个100M的,4个2M的,1个20M的

干吗要弄成大小差异这么大的回滚段?
请全部设置成大小一致,要么把不是100M的删除


tkprof分析的结果中,能否看出是哪一步消耗的时间多?
尝试把log  buffer设置小一点?
还有跟检查点相关的参数,也设置小一点?

使用道具 举报

回复
论坛徽章:
5
授权会员
日期:2005-10-30 17:05:33
17#
发表于 2002-9-28 17:32 | 只看该作者
biti_rainy的建议很好,你的回滚段太大,大的回滚段应该少一些,
小的回滚段应该多一些,小回滚段的大小应该一致,同时检查一下
checkpoint的参数是否合理,log buffer我认为不改也可以。

使用道具 举报

回复
论坛徽章:
10
ITPUB元老
日期:2005-02-28 12:57:002010广州亚运会纪念徽章:保龄球
日期:2011-01-30 11:57:03祖国60周年纪念徽章
日期:2009-10-09 08:28:00参与2009年中国云计算大会纪念
日期:2009-06-05 10:02:28ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53会员2006贡献徽章
日期:2006-04-17 13:46:34授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41
18#
 楼主| 发表于 2002-9-28 17:43 | 只看该作者

Re: 一点建议

最初由 biti_rainy 发布
[B]除去SYSTEM,一共24个回滚段。
其中有19个100M的,4个2M的,1个20M的

干吗要弄成大小差异这么大的回滚段?
请全部设置成大小一致,要么把不是100M的删除


tkprof分析的结果中,能否看出是哪一步消耗的时间多?
尝试把log  buffer设置小一点?
还有跟检查点相关的参数,也设置小一点? [/B]


非常感谢你的建议,下一步我要对把数据库做一些优化。

是不是处理t_1和t_2引用了不同大小的回滚段呢?那也不会每次都这么巧啊。

tkprof的分析结果中消耗时间的统计只到语句级,也没有insert的执行计划(insert是否就是没有执行计划?)。
整个分析结果文件中,insert into t_2的执行时间最长(最长的5500多秒)。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
19#
发表于 2002-9-29 09:19 | 只看该作者
最初由 wang2008 发布
[B]biti_rainy的建议很好,你的回滚段太大,大的回滚段应该少一些,
小的回滚段应该多一些,小回滚段的大小应该一致,同时检查一下
checkpoint的参数是否合理,log buffer我认为不改也可以。 [/B]


大的回滚段应该少一些?为什么?
我就一个回滚段512M,该什么办?

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
20#
发表于 2002-9-29 09:51 | 只看该作者
1. 你的磁盘很慢吗?
2. 你的data_block buffer是多少
3. 有没有Checkpoint not complete

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表