oracle 分区索引重建,报等待锁定对象时发生超时

oracle数据库表历史数据占用空间太大,现在进行压缩。压缩后重建分区索引,大部分的表索引都重建成功,有一张大表 重建分区索引运行很久然后就报错,ora—04021等待锁定对象时发生超时。有没有解决的方法

解决办法:
1、查出哪个进程占用了对象

dba_ddl_locks 中查询出SID SERIAL#

2、alter system kill session ' sid,serial#'
3、如果第二步失败:需要到服务器端删除相关的进程(UNIX)或线程(windows)

Select spid, osuser, s.program
From v$session s, v$process p
Where s.paddr = p.addr
And s.sid =(第一步中查出的SID)

4、服务器端(windows):

orakill sid thread(SID是Oracle的实例名,thread是上面查出来的SPID)