Oracle 11g物化视图挂起

时间:2013-09-10 20:58:43

标签: performance oracle view hang materialized

我正在尝试使用预构建的视图在Oracle中创建物化视图。

  create materialized view bfb_rpt_sch01.mvw_base_sales
  as select * from bfb_rpt_sch01.vw_base_sales;

此命令不会执行并挂起。我想也许这与视图没有正确编写有关。所以我在视图上执行了以下查询。

  select count(*) from bfb_rpt_sch01.vw_base_sales

此查询大约需要6分钟才能执行,并返回270万。这告诉我观点不是问题,但我可能是错的。

1 个答案:

答案 0 :(得分:1)

我设法解决了我的问题。我的(CREATE MATERIALIZED VIEW AS)与我的(CREATE TABLE AS)相比使用了不同的解释。如果我的代码包含以下代码行,它将完全正常运行(CREATE TABLE AS),但它会在使用(CREATE MATERIALIZED VIEW AS)失败之前继续挂起48小时。

WHERE a.column_name NOT IN (SELECT b.column_name FROM B) --culprit

我使用以下内容更改了代码,现在工作正常。

WHERE NOT EXISTS (SELECT NULL FROM B WHERE a.column_name = b.column_name) --works

我不确定为什么会这样,也许是错误?关于ORACLE打电话我还不够。