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

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

2135

积分

502

好友

184

主题
1#
发表于 2012-2-1 17:03:29 | 查看: 6163| 回复: 2
Question:

我们业务中有4张大表,存储的是卡号,帐户等关键数据,大小都在10G以上,数据量在2亿条左右,现在业务上有规定每年要定期对这几个表中的
    的数据进行清理,清理的规则就是找出业务上不再使用的卡号,将其导入到另一个备份库,然后再将数据从表中删除。目前计划是每年清理2次,每次
    清理的数据量大概在几十万,基于这样的业务规则,目前比较担心的是每次清理后是否需要重建表和索引,这样删除会不会产生过多的碎片。
    以其中一个表为例,该表所在的表空间设计如下:
    create tablespace CARD datafile 'datafilename' size 8192m autoextend on next 1m maxsize unlimited
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
    AUTOALLOCATE  和UNIFORM 在性能上哪种比较好点
    表的存储参数该如何考虑,是否需要计算单行的大小等。
    对INSERT和UPDATE很频繁的表来说,设计上需要注意哪些参数。
下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/zh-hans/emergency-services

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569   
2#
发表于 2012-2-1 17:04:38
Answer:

      10g若采用Extent本地管理模式,相比早期版本中表碎片造成的影响要小得多;针对存储大表的表空间,推荐使用UNIFORM区间分配模式,统一使用区间大小1MB/2MB。在10g中使用自动段管理模式下storage参数一般无需过多考虑;针对DML操作十分频繁的表可以为其指定较高的initrans初始化事务槽参数,以防止事务槽争用引起的等待,但该参数也不宜实质过大,因为一个事务槽要在标准块(一般为8k)上占用24 bytes的空间,其默认值为1,可以考虑设置为10~20。

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

  对INSERT和UPDATE很频繁的表,如果初始insert某些字段的值较短或为null,而且以后要update这些字段的值为较长值,那么在设计时最好考虑pctfree参数,通过测试取得较佳的pctfree,避免迁移行。

回复 只看该作者 道具 举报

3#
发表于 2015-7-20 10:56:01
怎么没有考虑分区表,对以后数据的迁移也是大大的好啊

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-20 19:12 , Processed in 0.045968 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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