drop table 个别表极慢

moonlighter 2012-12-20 05:07:26
因业务需要,在程序中需批量删除一些表,有时可能没有该表,有时可能表内数据很少,有时也可能有很多数据。但在执行时发现,执行到删除某个表(如A表)时,长时间不完成,一般要几十分钟(实际该表数据很少,有时数据库中没有该表),也执行其他表时,速度极快,时间有时不到1秒。不知什么原因?从何处检查?数据库为Oracle10i
...全文
904 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
善若止水 2012-12-20
  • 打赏
  • 举报
回复
建议先truncate ,再drop。这肯定会快
iqlife 2012-12-20
  • 打赏
  • 举报
回复
drop table 应该立刻返回的,感觉你的数据库存在问题,是本地库么,看看alert日志里有报错没有? 是否该表已经被删除,回收站里是否有,建议drop ....purse试试看 一般来说删除不掉就是该表被锁,但是也应该返回错误的,不返回而卡住,这个需要对该session进行下跟踪,确定操作过程中遇到什么问题了
linwaterbin 2012-12-20
  • 打赏
  • 举报
回复
是不是空间碎片太多了?查一下 v$session_waits ,在等待什么?建议最好在drop table 之前做一个 event trace ,trace 一下你的这个drop 到底做了什么,还有在drop 的时候看看cpu 和磁盘IO 的状态,是不是io 有什么问题
惜分飞 2012-12-20
  • 打赏
  • 举报
回复
没了现场情况,不好分析 有可能是因为这个表有事务没有提交,或者其他程序占用,或者其他,感觉原因有很多 如果当时有现场可以通过等待事件深入分析
db2_aixer 2012-12-20
  • 打赏
  • 举报
回复
表是不是很大?先把执行计划贴出来
moonlighter 2012-12-20
  • 打赏
  • 举报
回复
如在PL/SQL中执行drop table A;近一个小时没反应(实际上目前没有A表)也不报该表不存在的错误;而执行drop table B,当然B表也不存在,立即报该表不存在的错误。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧