No momento, estou criando logs de visualização materializada em várias tabelas para oferecer suporte a visualizações materializadas com FAST REFRESH. As visualizações materializadas que estamos criando contêm aproximadamente 30 colunas de várias tabelas. Uma de nossas tabelas de fatos contém cerca de 15 colunas que serão usadas em uma visualização materializada.
É necessário enumerar todas as colunas da tabela base que serão solicitadas na MV ao criar o MV Log?
CREATE MATERIALIZED VIEW LOG ON SCHEMA.TABLE_A
WITH ROWID, PRIMARY KEY, SEQUENCE (COL1, COL2, COL3, ..., COL48)
INCLUDING NEW VALUES;
O acima é um exemplo de como estou criando o Log MV. Admito que o que foi dito acima é resultado de tentativa e erro, sem um entendimento completo de como cada componente da declaração funciona (eu entendo mais).
Em que circunstâncias é necessário que eu defina quais colunas devem ser incluídas no log de VM?
Algumas visualizações materializadas serão apenas uma junção entre várias tabelas. Outros incluirão agregações, agrupamentos, somas, etc.
Não , você não precisa enumerar as colunas usadas em uma visualização materializada ao criar o log de visualização materializada. Na verdade, você não pode criar um log de visualização materializada usando o método de chave primária e incluir todas as colunas porque estaria incluindo a própria coluna de chave primária, o que não é permitido.
O conceito de um log de exibição materializado é armazenar o rowid ou a chave primária dos dados que foram alterados. A atualização pode pesquisar todo o registro da tabela. Adicionar colunas específicas à cláusula WITH do log registra explicitamente os dados no próprio log de exibição materializada. Se sua consulta de visualização materializada estiver filtrando essas colunas ou unindo-as, isso poderá acelerar a atualização.
Teoricamente, se todas as colunas usadas no MV estiverem no log, ele poderá ser atualizado sem fazer referência à tabela. A documentação não indica que isso está sendo feito. Seria interessante rastrear isso para ver. Mesmo que isso aconteça, os requisitos adicionais de armazenamento podem não fazer com que essa rota valha a pena.
Você provavelmente deve apenas criar os logs de visualização materializada sem especificar uma lista de colunas, como esta:
Mais Informações: