ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一次简单的索引重建错误

一次简单的索引重建错误

原创 Linux操作系统 作者:victorymoshui 时间:2011-04-14 01:06:48 0 删除 编辑
今天,有个同事最近反映他的系统数据库很慢,刚好我也特别忙,所以就告诉他一些方法:IXPUB技术博客}Y o6K r5Q

'Q7K,Z5}&v7r3d0找出慢的语句,然后看哪些表,如果表太大了就要delete清理,清理完了就move + rebuild

*@*OXAw&r0IXPUB技术博客oW @sUk/R

move + rebuild 的方法:IXPUB技术博客z:m3M9F n

IXPUB技术博客6\%|1e#T d

(1) 查查它有多少个索引IXPUB技术博客4[jXT~D$_
select 'alter index '||index_name||' rebuild online;' from user_indexes where table_name='表名'

@ D[c-[*WS0IXPUB技术博客x8B(D3p*Ja

(2) 移表IXPUB技术博客 k:e&G!vf @-~m'O6R
alter table 表名 move;IXPUB技术博客,f9o d.n/u/]

IXPUB技术博客UeG:o/l-o&]h

(3) 把(1)的语句粘贴下来重建索引IXPUB技术博客'@rj5B$|!LC

IXPUB技术博客;XR-_1V!@9xj)L3A#X0@

呵呵,开始还挺顺利的,同事找出了一个很慢的语句,里面有7百多万数据,清掉了,剩下80多万,move和rebuild完后,效率大大提高。IXPUB技术博客XV_(N5e

C|^b,mzUoH0下午就出现问题了,他在重建另一个表的索引时,报以下错误IXPUB技术博客!M$Lr:Jv~t!]

IXPUB技术博客9Vs$Bv*I

alter index IDX_PHSSEND_MSGTYPE rebuild onlineIXPUB技术博客5b p)S$I1p"}b#O4O
*IXPUB技术博客 N6b#z[ U
ERROR at line 1:
VN5][1MH/{0ORA-08108: may not build or rebuild this type of index onlineIXPUB技术博客0c^ m.t`"Z&K+]KZ

l{oQ&^U8J T0这种情况一般就发生在函数索引和bitmap索引等情况下,一查果然是这样:IXPUB技术博客2M[pp7Zx

8Ff'UR%o"f'xj2c)S ]0SQL> select index_name,STATUS,INDEX_TYPE,tablespace_name from  user_indexes where table_name='T_SMS_PHSSEND' and status='UNUSABLE'; IXPUB技术博客)?*fzi)E@ d0j

5kQ0K8oyCDB0INDEX_NAME          STATUS          INDEX_TYPE           TABLESPACE_NAME
1t R^"uq R0------------------ ---------------- -------------------  --------------------
oV4X'LQ3N G Y;W y0IDX_PHSSEND_MSGFLG  UNUSABLE        BITMAP               IDX_SXTIXPUB技术博客HL4Y8U%eQG
IDX_PHSSEND_MSGTYPE UNUSABLE        BITMAP              IDX_SXTIXPUB技术博客 oXY~3YJ[

I"xA_ m:}I? b$L-e:s0这种索引一般只能是drop掉重建,取出创建脚本,重新建上索引,故障解决。

i-S5qykcU;_3_hmk0

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9390331/viewspace-692465/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-08-26

  • 博文量
    173
  • 访问量
    306738