Oracle - материализованное представление, можно ли быстро обновить этот MV?

У меня есть материализованное представление, которое выглядит примерно так, как показано ниже, и мне интересно, есть ли способ «быстро» обновить это материализованное представление? В общем, я спрашиваю следующее:

  1. Может ли материализованное представление содержать функции оракула, такие как COALESCE, NVL, NVL2 и т. д., и при этом быстро обновляться?

  2. Может ли материализованное представление содержать функции, которые я создал, и при этом быстро обновляться.

  3. Может ли материализованное представление содержать соединения с производными таблицами и при этом быстро обновляться?

Я проверил документацию Oracle по этому поводу. , и эти ограничения не перечислены, однако после тестирования описанного ниже случая на моей собственной системе я поверил, что это возможно.

Версия Оракула: 10g

SELECT COALESCE (col1, col2),
       myOracleFunction(col3, col4)
  FROM tableA a 
       LEFT OUTER JOIN
       (SELECT   id, MAX (sample_key) prim_sam_key
            FROM table_sample
        GROUP BY id
          HAVING COUNT (1) = 1) b ON a.id = b.id;

person contactmatt    schedule 04.08.2011    source источник


Ответы (1)


Требования из предоставленной вами ссылки, ты пропускаешь:

  • Необходимо указать COUNT(*).
  • Список SELECT должен содержать все столбцы GROUP BY.

Кроме того, следующее требование указывает, что для вашего запроса быстрое обновление будет возможно только в том случае, если table_sample был обновлен, а tableA — нет:

  • Материализованные агрегатные представления с внешними соединениями быстро обновляются после обычного DML и прямой загрузки при условии, что была изменена только внешняя таблица. Кроме того, должны существовать уникальные ограничения для столбцов соединения внутренней таблицы соединения. Если есть внешние соединения, все соединения должны быть соединены операторами AND и должны использовать оператор равенства (=).

Наконец, когда вы спрашиваете о материализованных представлениях, всегда полезно указать, какие журналы материализованных представлений вы создали.

person Allan    schedule 04.08.2011