我在oracle数据库中有一个看似已损坏或具有某种性质的视图。对该视图的一些查询会导致数据库无限期挂起,这在过去一周中经过多年的顺利运行后,自发地开始发生。
我检查了数据库测试实例上的视图,数据库中的数据完全相同,查询运行正常。视图在所有可见的方式都是相同的,所以我决定我应该重新编译视图。每次尝试这样做都会无限期地挂起,所以我决定放弃并重新创建。即使从sysdba,任何和所有尝试丢弃也会无限期地挂起。从该视图创建视图的脚本工作正常,因此我决定创建视图的副本,只需更改同义词以指向新视图,但删除现有同义词也无限期挂起。看起来我将不得不创建一个新视图,并更改我们的代码中的每个实例,其中查询损坏的视图以查询新视图。
有没有人对如何用一个新的,未损坏的视图替换损坏的视图有任何想法?
答案 0 :(得分:2)
检查是否有任何未提交的交易。它们可能导致DDL语句挂起,等待事务完成。