您的位置:首页 > 数据库 > Oracle

在Oracle数据库中按用户名重建索引的方法

2018-03-24 00:29 183 查看
  假如你治理的据库下某些使用项目有很多的修正删除操作, 数据索引是需求周期性的重建的。
  它不只可以进步查询功能, 还能添加索引表空间闲暇空间巨细。
  在很多删除记载后, 表和索引里占用的数据块空间并没有释放。
  重建索引可以释放已删除记载索引占用的数据块空间。
  转移数据, 重定名的办法可以从新组织内外的数据。
  下面是可以按户名生成重建索引的SQL剧本:
  SET ECHO OFF
  SET OFF
  SET VERIFY OFF
  SET 
  SET ON
  SET OFF
  ACCEPT CHAR PROMPT 'E   '
   
  SELECT
  'REM  ----------------------------------------------- ' || ||
  'REM | INDEX NAME : ' ||  || '.' || 
|| |',  -   
|| ||
  'REM | BYTES : ' || 
  ||  |', || ||
  'REM | : ' || 
||  |', || ||
  'REM  ----------------------------------------------- ' || ||
  'ALTER INDEX ' ||  || '.' || || ||
  '' || ||
  '' || || ||
  '' || ||
  ' ' || || ||
  ' NEXT ' || || ||
  ' MIN' || || ||
  ' MAX' || || ||
  ' ' || || ||
  '' || || (
FROM 
WHERE = 'INDEX'
  AND ='
  ORDER BY ,  DESC
   
  如果你用的是统, 想改变输出文件的存放目录,修改后面的路径成:
   :\\;
  如果你只想对大于索引重建索引,可以修改上面的SQL语句:
  在AND =' 后面加个限制条件 AND  
如果你想修改索引的存储参数, 在重建索引里改也可以。
  比如把等于零的值改成是零。
  生成的文件我们需要来分析一下,它们是否到了需要重建的程度:
  分析索引,看是否碎片严重
  SQLINDEX 
    'I N'  
   'L R'  
'U|L R'  
  '% L R'  
  SELECT ,
  - 
  _(/ ,''
  FROM   = 
  当删除的比率大于 - % 时,肯定是需要索引重建的。
  经过删改后的文件我们可以放到定时作业里:
  比如一个月或者两个月在非繁忙时间运行。
  如果遇到错误,表示索引在的表上有锁信息,不能重建索引。
  那就忽略这个错误, 看下次是否成功。
  对那些特别忙的表要区别对待, 不能用这里介绍的方法,
  还要把它们的索引从里删去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: