0

我在一个似乎已损坏或类似性质的 Oracle 数据库中有一个视图。对该视图的一些查询会导致数据库无限期挂起,而这只是在过去一周自发地开始发生,经过多年的平稳运行。

我检查了数据库测试实例上的视图,数据库中的数据完全相同,查询运行良好。视图在所有可见的方面都是相同的,所以我决定我应该重新编译视图。每次尝试这样做都会无限期地挂起,所以我决定放弃并重新创建。任何和所有的删除尝试,即使是从 sysdba 删除,也会无限期挂起。从该视图的脚本创建一个视图效果很好,所以我决定创建一个视图的副本,并将同义词更改为指向新视图,但删除现有的同义词也会无限期地挂起。看起来我将不得不创建一个新视图,并更改我们代码中查询损坏视图以查询新视图的每个实例。

有没有人对我如何用一个新的、未损坏的视图替换损坏的视图有任何想法?

4

1 回答 1

2

检查是否有任何未提交的交易。它们会导致 DDL 语句挂起,等待事务完成。

于 2013-09-27T14:12:38.310 回答