oracle怎么删除用户数据库用户名,如何在Oracle数据库中按用户名重建索引?

如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 加入收藏 数据索引是需要周期性的重建的。

它不仅可以提高查询性能, 还能增加索引表空间空闲空间大小。

在ORACLE里大量删除记录后, 表和索引里占用的数据块空间并没有释放。

重建索引可以释放已删除记录索引占用的数据块空间。

转移数据, 重命名的方法可以重新组织表里的数据。

下面是可以按ORACLE用户名生成重建索引的SQL脚本:

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:oraclerebuild_&username。

sql;

如果你只想对大于max_bytes的索引重建索引, 可以修改上面的SQL语句:

在AND owner='&username' 后面加个限制条件 AND bytes> &max_bytes

如果你想修改索引的存储参数, 在重建索引rebuild_&username。

sql里改也可以。

比如把pctincrease不等于零的值改成是零。

生成的rebuild_&username。sql文件我们需要来分析一下, 它们是否到了需要重建的程度:

分析索引,看是否碎片严重

SQL>ANALYZE INDEX &index_name VALIDATE STRUCTURE;。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值