在ORACLE里按用户名重建索引的方法

简介: 在ORACLE里按用户名重建索引的方法              ---------------------------------------------------------------------------        SET ECHO      OFF;  ...
在ORACLE里按用户名重建索引的方法      CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。


        ---------------------------------------------------------------------------
        SET ECHO      OFF;
        SET FEEDBACK  OFF;
        SET VERIFY    OFF;
        SET PAGESIZE  0;
        SET TERMOUT   ON;
        SET HEADING   OFF;
        ACCEPT username CHAR PROMPT 'Enter the index username: ';
        spool /oracle/rebuild_&username.sql;
       
        SELECT
                  'REM +-----------------------------------------------+' || chr(10) ||
                  'REM | INDEX NAME : ' || owner   || '.'
|| segment_name
                 || lpad('|', 33 - (length(owner) + length(segment_name)) )
                 || chr(10) ||
                  'REM | BYTES      : ' || bytes   
                 || lpad ('|', 34-(length(bytes)) ) || chr(10) ||
                  'REM | EXTENTS    : ' || extents
                 || lpad ('|', 34-(length(extents)) ) || chr(10) ||
                  'REM +-----------------------------------------------+' || chr(10) ||
          'ALTER INDEX ' || owner || '.'
|| segment_name || chr(10) ||
          'REBUILD ' || chr(10) ||
          'TABLESPACE ' || tablespace_name || chr(10) ||
          'STORAGE ( ' || chr(10) ||
          '  INITIAL     ' || initial_extent || chr(10) ||
          '  NEXT        ' || next_extent || chr(10) ||
          '  MINEXTENTS  ' || min_extents || chr(10) ||
          '  MAXEXTENTS  ' || max_extents || chr(10) ||
          '  PCTINCREASE ' || pct_increase || chr(10) ||
          ');' || chr(10) || chr(10)
        FROM   dba_segments
        WHERE  segment_type = 'INDEX'
          AND  owner='&username'
        ORDER BY owner, bytes DESC;
       
        spool off;

        -----------------------------------------------------------------------------

       
如果你用的是 WINDOWS 系统 , 想改变输出文件的存放目录 , 修改 spool 后面的路径成 :
        spool c:\oracle\rebuild_&username.sql;

       
如果你只想对大于 max_bytes 的索引重建索引 , 可以修改上面的 SQL 语句 :       
       
AND  owner='&username' 后面加个限制条件 AND  bytes> &max_bytes

       
如果你想修改索引的存储参数 , 在重建索引 rebuild_&username.sql 里改也可以 .
       
比如把 pctincrease 不等于零的值改成是零 .

       
如果你想把 index 从一个 TABLESPACE 转移到另外一个 TABLESPACE ,也可以修改其中的 tablespace_name
目录
相关文章
|
Oracle 关系型数据库
Oracle新建数据表的两种方法
Oracle新建数据表的两种方法
222 1
|
SQL Oracle 关系型数据库
Oracle-index索引解读
Oracle-index索引解读
462 0
|
8月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1646 28
|
9月前
|
SQL 存储 Oracle
【YashanDB知识库】对比Oracle和YashanDB对象不一致的方法
本文来自YashanDB官网,介绍从Oracle迁移到YashanDB后的数据校验方法。通过YMP工具迁移数据后,可使用其内置校验功能,或采用本文提供的复杂对比思路:将Oracle的DBA_*数据字典视图保存为用户表,借助YMP同步至YashanDB,再利用SQL查询两数据库间的差异。具体包括视图、存储过程、索引和约束等对象的对比方法,提供详细SQL示例以供参考和修改。
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
254 7
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
索引
Oracle-序列、索引和同义词
Oracle-序列、索引和同义词
155 0
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法
相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几个误删除Oracle数据库数据的恢复方法。
|
SQL 存储 Oracle
Oracle数据库中游标的工作原理与优化方法
Oracle数据库中游标的工作原理与优化方法
|
存储 Oracle 关系型数据库
Oracle索引知识看这一篇就足够
Oracle索引知识看这一篇就足够

推荐镜像

更多