Re: [oracle_br] Ajuda com Materialized View

2012-08-01 Por tôpico Emerson Martins
http://www.databasejournal.com/features/oracle/article.php/2192071/Materialized-Views-in-Oracle.htm

Emerson Martins
DBA JR



Em 1 de agosto de 2012 13:09, Emerson Martins
escreveu:

> Segue um link que encontrei googlando agora..
>
> Emerson Martins
> DBA JR
>
>
>
> Em 1 de agosto de 2012 13:08, Emerson Martins 
> escreveu:
>
> Thiago não ficou faltando o START WITH não indicando quando irá começar a
>> atualizar?
>>
>> Emerson Martins
>> DBA JR
>>
>>
>>
>> Em 1 de agosto de 2012 12:15, Yahoo  escreveu:
>>
>> **
>>>
>>>
>>> Boa Tarde a todos,
>>>
>>> estou precisando criar umas visões materializadas com refresh automático,
>>> mas não estou conseguindo.
>>>
>>> Eu fiz da seguinte forma:
>>>
>>> 1) Criei a view para Log na tabela:
>>>
>>> CREATE MATERIALIZED VIEW LOG ON TABELA
>>> NOLOGGING
>>> WITH ROWID;
>>>
>>> 2) Crio a View com refresh automático
>>>
>>> CREATE MATERIALIZED VIEW MV_TABELA
>>> REFRESH FAST ON COMMIT
>>> ENABLE QUERY REWRITE AS
>>> SELECT ...
>>>
>>> O problema é que ao criar a view MV_TABELA o Oracle gera o erro
>>> ORA-32401,
>>> afirmando que a tabela de log não possui novos valores. Eu sei que não há
>>> novos valores, estou criando em ambiente de teste. A view não deveria ser
>>> criada mesmo assim? Antes disso eu tentei criar a view sem opção de
>>> refresh
>>> e fazer um alter materialized view posterior, também não deu certo.
>>>
>>> Alguém tem alguma dica?
>>>
>>> Obrigado!
>>> --
>>> *Thiago Oliveira
>>> *
>>> *http://br.linkedin.com/in/tjsoliveira*
>>> *Consultor Oracle - Apply Solutions*
>>> *http://www.applysolutions.com.br*
>>> *(83) 8600-7901*
>>>
>>> [As partes desta mensagem que não continham texto foram removidas]
>>>
>>>  
>>>
>>
>>
>


[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Ajuda com Materialized View

2012-08-01 Por tôpico Emerson Martins
Segue um link que encontrei googlando agora..

Emerson Martins
DBA JR



Em 1 de agosto de 2012 13:08, Emerson Martins
escreveu:

> Thiago não ficou faltando o START WITH não indicando quando irá começar a
> atualizar?
>
> Emerson Martins
> DBA JR
>
>
>
> Em 1 de agosto de 2012 12:15, Yahoo  escreveu:
>
> **
>>
>>
>> Boa Tarde a todos,
>>
>> estou precisando criar umas visões materializadas com refresh automático,
>> mas não estou conseguindo.
>>
>> Eu fiz da seguinte forma:
>>
>> 1) Criei a view para Log na tabela:
>>
>> CREATE MATERIALIZED VIEW LOG ON TABELA
>> NOLOGGING
>> WITH ROWID;
>>
>> 2) Crio a View com refresh automático
>>
>> CREATE MATERIALIZED VIEW MV_TABELA
>> REFRESH FAST ON COMMIT
>> ENABLE QUERY REWRITE AS
>> SELECT ...
>>
>> O problema é que ao criar a view MV_TABELA o Oracle gera o erro ORA-32401,
>> afirmando que a tabela de log não possui novos valores. Eu sei que não há
>> novos valores, estou criando em ambiente de teste. A view não deveria ser
>> criada mesmo assim? Antes disso eu tentei criar a view sem opção de
>> refresh
>> e fazer um alter materialized view posterior, também não deu certo.
>>
>> Alguém tem alguma dica?
>>
>> Obrigado!
>> --
>> *Thiago Oliveira
>> *
>> *http://br.linkedin.com/in/tjsoliveira*
>> *Consultor Oracle - Apply Solutions*
>> *http://www.applysolutions.com.br*
>> *(83) 8600-7901*
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>
>


[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Ajuda com Materialized View

2012-08-01 Por tôpico Emerson Martins
Thiago não ficou faltando o START WITH não indicando quando irá começar a
atualizar?

Emerson Martins
DBA JR



Em 1 de agosto de 2012 12:15, Yahoo  escreveu:

> **
>
>
> Boa Tarde a todos,
>
> estou precisando criar umas visões materializadas com refresh automático,
> mas não estou conseguindo.
>
> Eu fiz da seguinte forma:
>
> 1) Criei a view para Log na tabela:
>
> CREATE MATERIALIZED VIEW LOG ON TABELA
> NOLOGGING
> WITH ROWID;
>
> 2) Crio a View com refresh automático
>
> CREATE MATERIALIZED VIEW MV_TABELA
> REFRESH FAST ON COMMIT
> ENABLE QUERY REWRITE AS
> SELECT ...
>
> O problema é que ao criar a view MV_TABELA o Oracle gera o erro ORA-32401,
> afirmando que a tabela de log não possui novos valores. Eu sei que não há
> novos valores, estou criando em ambiente de teste. A view não deveria ser
> criada mesmo assim? Antes disso eu tentei criar a view sem opção de refresh
> e fazer um alter materialized view posterior, também não deu certo.
>
> Alguém tem alguma dica?
>
> Obrigado!
> --
> *Thiago Oliveira
> *
> *http://br.linkedin.com/in/tjsoliveira*
> *Consultor Oracle - Apply Solutions*
> *http://www.applysolutions.com.br*
> *(83) 8600-7901*
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




RE: [oracle_br] Ajuda com materialized view

2007-11-06 Por tôpico Luiz Ribeiro
Obrigado a todos pelas dicas.

[]s

-Original Message-
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Rogério Melnick
Sent: terça-feira, 6 de novembro de 2007 15:37
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Ajuda com materialized view

Para criar uma materialized view a partir de uma tablela na Procergs.

create materialized view MV_MUNLOGR
build immediate
refresh complete
as
SELECT l.K33_NOME_RUA,
l.K33_BAIRRO,
l.K33_CEP_EBCT,
l.K33_IND_TRECHO,
l.K33_COD_LOGR,
m.K32_COD_MUNIC,
m.K32_NOME_MUNIC
FROM GID_LOGRADOUROS l,
GID_MUNICIPIOS m
WHERE m.K32_UF = 'RS' AND
l.K33_COD_MUNIC = m.K32_COD_MUNIC
ORDER BY l.K33_NOME_RUA ASC;


Para dar o refresh na materialized view usa-se o comando

EXECUTE DBMS_MVIEW.REFRESH ('MV_MUNLOGR', 'C', NULL, TRUE, FALSE, 1,
0, 0, TRUE);

Para fazer um job que execute o refresh diariamente, usamos

EXECUTE DBMS_JOB.submit(1,'execute DBMS_MVIEW.REFRESH ('MV_MUNLOGR',
'C', NULL, TRUE, FALSE, 1, 0, 0, TRUE)','0:00:00','sysdate+1');

ORA-12012: erro ao executar automaticamente o job 21
ORA-12008: erro no caminho de renovação de view materializada
ORA-01555: instantâneo muito antigo: número de segmento de rollback
com nome  "" muito pequeno
ORA-06512: em "SYS.DBMS_SNAPSHOT", line 794
ORA-06512: em "SYS.DBMS_SNAPSHOT", line 851
ORA-06512: em "SYS.DBMS_SNAPSHOT", line 832
ORA-06512: em line 1


Falha na procergs devido a atualização das tabelas que geram a mview -
não há como fazer refresh juntamente com a carga das tabelas em
atualização - basta reescalonar o refresh para as 7 da manhã

 Variable jobno number

execute DBMS_JOB.submit(:jobno,'DBMS_MVIEW.REFRESH (''MV_MUNLOGR'',
''C'', NULL, TRUE, FALSE, 1, 0, 0,
TRUE);',trunc(sysdate+1)+7/24,'trunc(sysdate+1)+7/24');


outra opção seria criar uma tabela com a mesma estrutura da mat view e
indexá-la para que
não seja necessário usar order by

DROP MATERIALIZED VIEW MV_MUNLOGR;

DROP TABLE MV_MUNLOGR;

CREATE TABLE MV_MUNLOGR
(
K33_NOME_RUA VARCHAR2(40)
,K33_BAIRRO VARCHAR2(20)
,K33_CEP_EBCT NUMBER(08)
,K33_COD_LOGR NUMBER(05)
,K32_COD_MUNIC NUMBER(05)
)
;

ALTER TABLE MV_MUNLOGR
ADD (CONSTRAINT MV_MUNLOGR_PK PRIMARY KEY
(K32_COD_MUNIC, K33_NOME_RUA , K33_COD_LOGR)
USING INDEX
TABLESPACE SCAT_IDX)
;

CREATE MATERIALIZED VIEW MV_MUNLOGR
ON PREBUILT TABLE
REFRESH COMPLETE
AS
SELECT L.K33_NOME_RUA,
L.K33_BAIRRO,
L.K33_CEP_EBCT,
L.K33_COD_LOGR,
M.K32_COD_MUNIC
FROM GID_LOGRADOUROS L,
GID_MUNICIPIOS M
WHERE M.K32_UF = 'RS' AND
L.K33_COD_MUNIC = M.K32_COD_MUNIC
;

execute dbms_mview.refresh('MV_MUNLOGR','c');


analyze table MV_MUNLOGR compute statistics
for table for all indexes for all indexed columns;


>Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

 



Re: [oracle_br] Ajuda com materialized view

2007-11-06 Por tôpico Rogério Melnick
Para criar uma materialized view a partir de uma tablela na Procergs.

create materialized view MV_MUNLOGR
build immediate
refresh complete
as
SELECT l.K33_NOME_RUA,
l.K33_BAIRRO,
l.K33_CEP_EBCT,
l.K33_IND_TRECHO,
l.K33_COD_LOGR,
m.K32_COD_MUNIC,
m.K32_NOME_MUNIC
FROM GID_LOGRADOUROS l,
GID_MUNICIPIOS m
WHERE m.K32_UF = 'RS' AND
l.K33_COD_MUNIC = m.K32_COD_MUNIC
ORDER BY l.K33_NOME_RUA ASC;


Para dar o refresh na materialized view usa-se o comando

EXECUTE DBMS_MVIEW.REFRESH ('MV_MUNLOGR', 'C', NULL, TRUE, FALSE, 1,
0, 0, TRUE);

Para fazer um job que execute o refresh diariamente, usamos

EXECUTE DBMS_JOB.submit(1,'execute DBMS_MVIEW.REFRESH ('MV_MUNLOGR',
'C', NULL, TRUE, FALSE, 1, 0, 0, TRUE)','0:00:00','sysdate+1');

ORA-12012: erro ao executar automaticamente o job 21
ORA-12008: erro no caminho de renovação de view materializada
ORA-01555: instantâneo muito antigo: número de segmento de rollback
com nome  "" muito pequeno
ORA-06512: em "SYS.DBMS_SNAPSHOT", line 794
ORA-06512: em "SYS.DBMS_SNAPSHOT", line 851
ORA-06512: em "SYS.DBMS_SNAPSHOT", line 832
ORA-06512: em line 1


Falha na procergs devido a atualização das tabelas que geram a mview –
não há como fazer refresh juntamente com a carga das tabelas em
atualização – basta reescalonar o refresh para as 7 da manhã

 Variable jobno number

execute DBMS_JOB.submit(:jobno,'DBMS_MVIEW.REFRESH (''MV_MUNLOGR'',
''C'', NULL, TRUE, FALSE, 1, 0, 0,
TRUE);',trunc(sysdate+1)+7/24,'trunc(sysdate+1)+7/24');


outra opção seria criar uma tabela com a mesma estrutura da mat view e
indexá-la para que
não seja necessário usar order by

DROP MATERIALIZED VIEW MV_MUNLOGR;

DROP TABLE MV_MUNLOGR;

CREATE TABLE MV_MUNLOGR
(
K33_NOME_RUA VARCHAR2(40)
,K33_BAIRRO VARCHAR2(20)
,K33_CEP_EBCT NUMBER(08)
,K33_COD_LOGR NUMBER(05)
,K32_COD_MUNIC NUMBER(05)
)
;

ALTER TABLE MV_MUNLOGR
ADD (CONSTRAINT MV_MUNLOGR_PK PRIMARY KEY
(K32_COD_MUNIC, K33_NOME_RUA , K33_COD_LOGR)
USING INDEX
TABLESPACE SCAT_IDX)
;

CREATE MATERIALIZED VIEW MV_MUNLOGR
ON PREBUILT TABLE
REFRESH COMPLETE
AS
SELECT L.K33_NOME_RUA,
L.K33_BAIRRO,
L.K33_CEP_EBCT,
L.K33_COD_LOGR,
M.K32_COD_MUNIC
FROM GID_LOGRADOUROS L,
GID_MUNICIPIOS M
WHERE M.K32_UF = 'RS' AND
L.K33_COD_MUNIC = M.K32_COD_MUNIC
;

execute dbms_mview.refresh('MV_MUNLOGR','c');


analyze table MV_MUNLOGR compute statistics
for table for all indexes for all indexed columns;


>Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais acesse: http://www.oraclebr.com.br/codigo/ListaCodigo.php 
--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 


Re: [oracle_br] Ajuda com materialized view

2007-11-06 Por tôpico André Castro
Estamos usando algumas MV's aqui.
Cara, se não me falha a memória na criação dela, tu pode setar "on commit".
Dá uma "googleada" que tu acha material de monte, com exemplos de sintaxe
inclusive.

[]'s
André Castro


Em 06/11/07, Luiz Ribeiro <[EMAIL PROTECTED]> escreveu:
>
>   Boa tarde.
>
> Preciso de uma ajuda (se é que o que quero é possível) para criar uma
> materialized view (qual a sintaxe) para que a mesma seja atualizada a cada
> insert, update ou delete numa determinada tabela.
>
> SQL> desc valor_operacao;
>
> Name Null? Type
>
> -  -
>
> ID_VALOR NOT NULL NUMBER(10)
>
> ID_OPERACAO NOT NULL NUMBER(10)
>
> ID_VARIAVEL NOT NULL NUMBER(7)
>
> VALOR VARCHAR2(100)
>
> UNIDADE NOT NULL NUMBER(5)
>
> Sintaxe que preciso na view:
>
> SELECT DISTINCT id_variavel, valor, unidade FROM valor_operacao;
>
> Ou
>
> SELECT id_variavel, valor, unidade FROM valor_operacao GROUP BY
> id_variavel, valor, unidade;
>
> Não posso utilizar simplesmente uma view, por motivo de performance. Caso
> seja possível e alguém puder me ajudar, desde já agradeço.
>
> Abraço,
>
> Luiz
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>
> --
> E-mail classificado pelo Identificador de Spam Inteligente.
> Para alterar a categoria classificada, visite o Terra 
> Mail
>
>  --
> Esta mensagem foi verificada pelo E-mail Protegido 
> Terra
> .
> Scan engine: McAfee VirusScan / Atualizado em 05/11/2007 / Versão: 5.1.00
> /5156
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>


[As partes desta mensagem que não continham texto foram removidas]



RE: [oracle_br] Ajuda com materialized view

2007-11-06 Por tôpico Fabio Santos
Coloque uma trigger na tabela para atualizar a view.

 

abracos

 

From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On
Behalf Of Luiz Ribeiro
Sent: terça-feira, 6 de novembro de 2007 13:15
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Ajuda com materialized view

 

Boa tarde.

Preciso de uma ajuda (se é que o que quero é possível) para criar uma
materialized view (qual a sintaxe) para que a mesma seja atualizada a cada
insert, update ou delete numa determinada tabela.

SQL> desc valor_operacao;

Name Null? Type

-  -

ID_VALOR NOT NULL NUMBER(10)

ID_OPERACAO NOT NULL NUMBER(10)

ID_VARIAVEL NOT NULL NUMBER(7)

VALOR VARCHAR2(100)

UNIDADE NOT NULL NUMBER(5)

Sintaxe que preciso na view:

SELECT DISTINCT id_variavel, valor, unidade FROM valor_operacao;

Ou

SELECT id_variavel, valor, unidade FROM valor_operacao GROUP BY id_variavel,
valor, unidade;

Não posso utilizar simplesmente uma view, por motivo de performance. Caso
seja possível e alguém puder me ajudar, desde já agradeço.

Abraço,

Luiz

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]