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

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

2135

积分

502

好友

184

主题
1#
发表于 2012-4-26 10:30:21 | 查看: 5347| 回复: 5
【讨论帖】对于INDEX索引维护是REBUILD重建好还是COALESCE好?  What's better?
下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/zh-hans/emergency-services

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

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

服务热线 : 13764045638  QQ: 47079569   
2#
发表于 2012-4-26 10:43:47
我们库小,都是在业务少,或停业务时做的rebulid。
如果忙时做会出现rebulid失败的现象

回复 只看该作者 道具 举报

3#
发表于 2012-4-26 11:15:50

失败了如何处理

你们对于失败的rebuild 如何处理,继续重建?

回复 只看该作者 道具 举报

4#
发表于 2012-4-26 14:42:08
我们是重建
我的语句如下,还是想听听各位大神的建议
DECLARE
  V_SQL VARCHAR2(4000);
BEGIN
  FOR CUR IN (SELECT O.OBJECT_NAME
                FROM USER_OBJECTS O
               WHERE O.OBJECT_TYPE = 'INDEX'
                 AND O.LAST_DDL_TIME < SYSDATE - 30 /*一个月内没重建过的*/
                 AND O.TEMPORARY = 'N'
               ORDER BY 1) LOOP
    V_SQL := 'ALTER INDEX ' || CUR.OBJECT_NAME || ' REBUILD COMPUTE STATISTICS NOLOGGING PARALLEL';
    BEGIN
      EXECUTE IMMEDIATE V_SQL;
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE(V_SQL);
    END;
    V_SQL := 'ALTER INDEX ' || CUR.OBJECT_NAME || ' NOPARALLEL';
    BEGIN
      EXECUTE IMMEDIATE V_SQL;
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE(V_SQL);
    END;
  END LOOP;
END;

回复 只看该作者 道具 举报

5#
发表于 2012-4-27 15:25:37
个人认为重建比较好。重建时,对于块内没有使用的空间,或者块内被标记为drop的空间都会重新使用。
这样对于索引的扫描时,扫描的成本可能要低很多。
但是,重建需要耗费系统资源。所以一般需要在空闲时间处理。

回复 只看该作者 道具 举报

6#
发表于 2012-4-27 16:42:14
重建也有重建的坏处
重建会降低索引的高度 ,如果后续的DML比较频繁,插入了大量数据,可能导致根块的分割。

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-25 00:25 , Processed in 0.047447 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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