Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

17

积分

0

好友

0

主题
1#
发表于 2012-2-16 09:34:32 | 查看: 6565| 回复: 4
我要建一个1000多w条数据的一个表  OLTP的
问题
1 表的参数怎么设置,如何规划比较好呢
2 表空间的参数设置,规划怎样比较好呢 大
3 大概1200w 将来增长可以忽略,表空间设置多大比较好呢
4 一共7个字段,需要在三个字段上建联合索引,索引设置和规划有什么需要注意的吗?我知道索引需要放在索引表空间里面
5 需要插入1000w多的数据在这个表上,并建立联合索引,有什么需要注意的吗?是不是得用nolog和直接路径
希望大家帮帮忙,互相探讨
2#
发表于 2012-2-16 13:45:05
是一次插入1000w还是?
一条记录 有多在,需要考虑。。
这个表,是delete ,update 操作吗?

回复 只看该作者 道具 举报

3#
发表于 2012-2-16 15:20:03
1000w 的数据量并不大

10g若采用Extent本地管理模式,相比早期版本中表碎片造成的影响要小得多;针对存储大表的表空间,推荐使用UNIFORM区间分配模式,统一使用区间大小64MB/128MB。在10g中使用自动段管理模式下storage参数一般无需过多考虑;针对DML操作十分频繁的表可以为其指定较高的initrans初始化事务槽参数,以防止事务槽争用引起的等待,但该参数也不宜设置过大,因为一个事务槽要在标准块(一般为8k)上占用24 bytes的空间,其默认值为1,可以考虑设置为10~20。对INSERT和UPDATE很频繁的表,如果初始insert某些字段的值较短或为null,而且以后要update这些字段的值为较长值,那么在设计时最好考虑pctfree参数,通过测试取得较佳的pctfree,避免迁移行。

   在大表上定期清除数据可能造成索引上碎片过多,进而导致性能问题;建议在清除数据后对索引进行在线重建(rebuild online)或合并操作(coalesce);以上2种操作都不会导致表被长期锁定。10g中针对表或索引上的碎片问题也可以考虑采用shrink操作,该命令也可以在线执行,不会长期锁表。但该命令只能对建立在自动段管理模式表空间上的对象执行,要使用该命令首先需要在表上启用ROW MOVEMENT,如:
                   ALTER TABLE TABNAME ENABLE ROW MOVEMENT;
                   ALTER TABLE TABNAME SHRINK SPACE;
                   ALTER INDEX INDNAME SHRINK SPACE;

回复 只看该作者 道具 举报

4#
发表于 2012-2-17 09:43:16
太强悍了!谢谢版主, 回答的好详细。

回复 只看该作者 道具 举报

5#
发表于 2012-2-17 12:06:19
针对DML操作十分频繁的表可以为其指定较高的initrans初始化事务槽参数,以防止事务槽争用引起的等待,但该参数也不宜设置过大,因为一个事务槽要在标准块(一般为8k)上占用24 bytes的空间,其默认值为1,可以考虑设置为10~20。

会同时有10~20个session对同一个块进行DML吗?这在高并发的OLTP是可能的,但实际上,很多DB,默认2是够的

ITL争用与否,在DML时,看行锁的模式吧,如果没有ITL槽位,会将lock置于共享模式,否则为排它

v$segment_statistics.statistic_name = ’ITL waits’,可以看下segment的ITL争用情况

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 01:47 , Processed in 0.051457 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569