注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oracle、MySQL资料及经验

.

 
 
 

日志

 
 

Oracle数据库月度维护(空间整理,表和索引碎片整理)  

2016-10-21 15:18:29|  分类: 优化 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、清空已删除表,释放所占空间
在sqlplussys用户执行:
SQL> purge dba_recyclebin;


二、表碎片整理
sys登录plsql dev,sql窗口运行,执行结果复制到文本文件,替换掉双引号,然后放到命令窗口执行。
select 'alter table ' || t1.owner || '.' || t1.table_name ||
       ' enable row movement;' || chr(10) || 'alter table ' || t1.owner || '.' ||
       t1.table_name || ' shrink space cascade;' || chr(10)
  from dba_tables t1, dba_users t2
 where t1.owner = t2.username
   and t1.tablespace_name is not null
   and t2.account_status = 'OPEN'
   and t2.username not in ('SYS', 'SYSTEM', 'DBSNMP', 'SCOTT')
   and t1.table_name not like '%1'
   and t1.table_name not like '%2'
   and t1.table_name not like '%3'
   and t1.table_name not like '%BAK'
 order by t1.owner;



三、索引重建
1. 全局索引重建
sys登录plsql dev,sql窗口运行,执行结果复制到命令窗口执行。
select 'alter index '||t1.owner||'.'||t1.index_name||' rebuild online nologging;'
  from dba_indexes t1, dba_users t2
 where t1.index_name not in (select index_name from dba_part_indexes)
   and t1.owner = t2.username
   and t2.account_status = 'OPEN'
   and t2.username not in ('SYS', 'SYSTEM', 'DBSNMP', 'SCOTT')
   and t1.table_name not like '%1'
   and t1.table_name not like '%2'
   and t1.table_name not like '%3'
   and t1.table_name not like '%BAK'   
 order by 1;  

2. 分区表的分区索引(local index)重建
sys登录plsql dev,sql窗口运行,执行结果复制到命令窗口执行。
select 'alter index ' || a.owner || '.' || a.index_name ||
       ' rebuild partition ' || b.partition_name || ' online nologging;'
  from dba_part_indexes a, dba_tab_partitions b, dba_users c
 where a.table_name = b.table_name
   and a.owner = b.table_owner
   and a.owner = c.username
   and c.account_status = 'OPEN'
   and c.username not in ('SYS', 'SYSTEM', 'DBSNMP', 'SCOTT')
   and b.num_rows <> 0;


四、编译无效对象
在sqlplus下sys用户执行:
SQL> @?/rdbms/admin/utlrp.sql


五、重新统计信息收集
sys用户执行:
SQL> set timing on
SQL> exec dbms_stats.gather_database_stats(options=>'GATHER AUTO', degree=>4, cascade =>TRUE);   
PL/SQL 过程已成功完成。
  评论这张
 
阅读(30)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017