`
piaoling
  • 浏览: 262210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle索引重建

阅读更多

set heading off
set feedback off
set linesize 200
column c_sql format a200
spool c:\c_index.sql
select 'drop index ' || index_name || ';'
  from user_indexes
 where table_owner = 'RTMART'
   and index_type = 'NORMAL'
   and (table_name like 'LOAD%' or table_name like 'TAC%' or
       table_name like 'TAG%' or table_name like 'TBU%' or
       table_name like 'TCO%' or table_name like 'TCS%' or
       table_name like 'TCQ%' or table_name like 'TPL%' or
       table_name like 'T_SM%');
select 'create index ' || iname || ' on ' || tname || '(' || cname || ');' c_sql
  from (select index_name iname,
               table_name tname,
               case max(rnumber)
                when 1 then
                 max(decode(rnumber, 1, column_name, ''))
                when 2 then
                 max(decode(rnumber, 1, column_name, '')) || ',' ||
                 max(decode(rnumber, 2, column_name, ''))
                when 3 then
                 max(decode(rnumber, 1, column_name, '')) || ',' ||
                 max(decode(rnumber, 2, column_name, '')) || ',' ||
                 max(decode(rnumber, 3, column_name, ''))
                else
                 max(decode(rnumber, 1, column_name, '')) || ',' ||
                 max(decode(rnumber, 2, column_name, '')) || ',' ||
                 max(decode(rnumber, 3, column_name, '')) || ',' ||
                 max(decode(rnumber, 4, column_name, ''))
               end as cname
          from (select index_name,
                       table_name,
                       column_name,
                       row_number() over(partition by index_name order by table_name, column_name) rnumber
                  from (select t.index_name, t.table_name, t.column_name
                          from user_ind_columns t, user_indexes b
                         where t.index_name = b.index_name
                           and t.table_name = b.table_name
                           and b.index_type = 'NORMAL'

                           and b.table_owner = 'RTMART'
                           and (t.table_name like 'LOAD%' or
                               t.table_name like 'TAC%' or
                               t.table_name like 'TAG%' or
                               t.table_name like 'TBU%' or
                               t.table_name like 'TCO%' or
                               t.table_name like 'TCS%' or
                               t.table_name like 'TCQ%' or
                               t.table_name like 'TPL%' or
                               t.table_name like 'T_SM%')
                         order by table_name, index_name, column_name))
         group by index_name, table_name);
spool off
set heading on
set feedback on

分享到:
评论

相关推荐

    浅谈oracle中重建索引

    在重建过程中,用户仍然可以使用原有的索引,并且新索引的构建也会利用原有索引的信息,这使得索引重建的过程更加迅速。 2. **索引信息的收集与验证**:为了判断索引是否需要重建,可以收集并分析索引的状态信息。...

    ORACLE重建索引总结

    本文主要总结了重建Oracle索引的相关知识点。 一、重建索引的前提条件 当表上的数据频繁进行`UPDATE`和`DELETE`操作,或者执行了`ALTER TABLE ... MOVE`操作导致ROWID改变时,可能需要考虑重建索引。这些操作可能...

    ORACLE数据库重建索引

    导致索引失效: 1、表上频繁发生update,delete操作; 2、表上发生了alter table ..move操作(move操作导致了rowid变化)。

    Oracle关于重建索引争论的总结

    索引重建是一个争论不休被不断热烈讨论的议题。当然Oracle官方也有自己的观点,我们很多DBA也是遵循这一准则来重建索引,那就是Oracle建议对于索引深度超过4级以及已删除的索引条目至少占有现有索引条目总数的20% 这...

    Oracle重建索引Shell脚本、SQL脚本分享

    N久以前Oracle建议我们定期重建那些高度为4,已删除的索引条目至少占有现有索引条目总数的20%的这些表上的索引。但Oracle现在强烈建议不要定期重建索引。具体可以参考文章:Oracle 重建索引的必要性。尽管如此重建...

    oracle索引,常见索引问题

    Oracle数据库中的索引是优化查询性能的关键工具,它允许快速定位和访问数据。常见的索引类型包括B*树索引和位图索引,每种都有其特定的应用场景和优势。 1. **B*树索引**:这是最常见的索引类型,类似于二叉树结构...

    关于oracle clob 类型字段重建索引SQL及修复用户表空间索引空间的存储过程

    在Oracle数据库中,CLOB(Character Large Object)...通过合理的索引重建和表空间管理,可以确保数据库高效运行,并减少不必要的维护成本。在实践中,应结合实际情况灵活运用各种SQL语句和存储过程,以达到最佳效果。

    oracle索引使用样例

    ### Oracle索引使用样例详解 #### 一、索引并行创建 在Oracle数据库中,并行创建索引可以显著提高创建索引的速度,尤其是在处理大量数据时。下面的SQL语句展示了如何并行创建一个索引: ```sql CREATE INDEX IDX_GD...

    09 oracle的索引 PPT

    3. 重建索引:当索引碎片严重时,可能需要重建索引来优化性能。 4. 删除索引:当索引不再被使用或者影响写操作性能时,可以考虑删除。 五、索引优化策略 1. 复合索引:如果多个列常一起出现在查询条件中,可以创建...

    oracle在线创建索引和重组索引

    Oracle 在线创建索引和重组索引 Oracle 在线创建索引和重组索引是数据库管理员经常需要处理的问题。在线创建索引可以提高查询性能,而重组索引可以减少索引的碎片化和空间浪费。下面我们将详细介绍在线创建索引和...

    oracle索引失效的总结

    索引重建 当索引变得非常碎片化时,重建索引可以提高其性能。 **解决办法**: - 使用`ALTER INDEX ... REBUILD`命令重建索引。 - 可以考虑在线重建(`ONLINE`选项),以减少锁定时间。 #### 11. B-Tree索引中的...

    Oracle数据库索引的维护

    ### Oracle数据库索引的维护 在Oracle数据库管理与优化的过程中,索引的维护是非常关键的一环。合理地创建、管理和优化索引能够显著提高查询性能,降低系统的响应时间,从而提升整个应用程序的效率。本文将从Oracle...

    Oracle解决索引碎片功能.txt

    1. **在线重建**:使用`ONLINE`选项可以在不影响应用程序的情况下进行索引重建,这对于生产环境中的数据库非常重要。 2. **表空间选择**:通过指定`TABLESPACE name`,可以将重建后的索引放在不同的表空间中,这有助...

    oracle索引的建立、修改、删除.doc

    提示:DBA 经常用 REBUILD 来重建索引可以减少硬盘碎片和提高应用系统的性能。Oracle8i 以后的新功能可以对索引的无用空间进行合并,它由下面命令完成:ALTER INDEX [user.]index COALESCE; 例如:ALTER INDEX ...

    Oracle索引检查重建与碎片收集[文].pdf

    除了索引重建,另一个处理碎片的方法是使用`ALTER TABLESPACE COALESCE`命令。这个命令用于整理表空间,将空闲的数据块合并,以减少空间的碎片。当你发现表空间的利用率低,或者有很多小的空闲块时,可以使用此命令...

    Oracle 创建索引的基本规则

    - **定期重建索引**: 随着数据量的增长,索引可能变得不那么高效,定期重建可以优化其结构。 - **监控索引使用情况**: 使用Oracle的工具如AWR报告来监控索引的使用情况,识别未被充分利用的索引并进行调整。 - **...

    Oracle索引的访问方法,如何创建索引、查询索引、使用索引

    Oracle索引的访问方法和创建索引的知识点 Oracle索引的访问方法是一种数据库优化技术,旨在提高查询速度和数据检索效率。索引是一种数据结构,它可以快速定位和检索数据库中的数据。Oracle索引的访问方法包括创建...

    oracle 索引创建

    3. **定期维护索引**:随着数据的不断增删改,索引可能会变得不高效,因此定期进行索引重建或优化是非常必要的。 4. **使用复合索引**:当查询条件涉及多个列时,可以考虑创建复合索引以提高查询效率。 #### 六、...

Global site tag (gtag.js) - Google Analytics