通常,截断一个表需要5-10秒。 但是,当几个人在同一个数据库实例(但不同的表)上工作时,操作可能需要一个多小时。 我如何debugging?
在表上或“truncate table”命令使用的数据字典资源上的锁可能会导致这种情况。 系统可能会等待一个资源被释放,然后才能执行截断操作。
检查会话是否被阻塞,等待locking被释放。
查看orafaq.com/node/854或dba-oracle.com/t_locked_rows_user_locks.htm中描述的查询,找出哪些锁可能被阻塞。
使用SAN存储时,应检查filesystemio_options参数设置。 将参数设置为SETALL或ASYNCH可减轻截断执行期间的日志文件同步等待。
在繁忙的系统上,build议运行其他数据库编写器。