como é que ficaria jlchiappa?

-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de jlchiappa
Enviada em: quinta-feira, 4 de maio de 2006 10:44
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: alter table levant + de 20 minutos...

Via de regra é aconselhado vc ter ao menos coisa de uns 6 redo log
files diferentes (afora espelhamentos), se vc tem menos **
provavelmente **, pode ser que, seja positivo, mas pelo jeito no caso
em questão não é isso que deve estar pegando : veja vc, a cláusula
NOT NULL necessariamente IMPLICA (o pessoal SEMPRE parece esquecer
disso...)  na criação de uma constraint de check com a
condição "campo is not null", e por default o ALTER TABLE vai criar
essa constraint com um NOME esquisito E vai criá-la com ENABLE
VALIDATE, o que implica varrer a tabela pra validar os registros,
cfrme :

[EMAIL PROTECTED]:SQL>@desc scott.big_table;

Nome                                      Nulo?    Tipo
----------------------------------------- -------- ------------------
----------
OWNER                                     NOT NULL VARCHAR2(30)
OBJECT_NAME                               NOT NULL VARCHAR2(30)
SUBOBJECT_NAME                                     VARCHAR2(30)
OBJECT_ID                                 NOT NULL NUMBER
DATA_OBJECT_ID                                     NUMBER
OBJECT_TYPE                                        VARCHAR2(19)
CREATED                                   NOT NULL DATE
LAST_DDL_TIME                             NOT NULL DATE
TIMESTAMP                                          VARCHAR2(19)
STATUS                                             VARCHAR2(7)
TEMPORARY                                          VARCHAR2(1)
GENERATED                                          VARCHAR2(1)
SECONDARY                                          VARCHAR2(1)

[EMAIL PROTECTED]:SQL>alter table SCOTT.BIG_TABLE modify (object_type
default 'ABC' not null);

Tabela alterada.

[EMAIL PROTECTED]:SQL>select * from dba_constraints where
table_name='BIG_TABLE';

OWNER            CONSTRAINT_NAME                C
TABLE_NAME                    
SEARCH_CONDITION                                      
---------------- ------------------------------ - --------------------
---------- ----------------------------------------------------
SCOTT            SYS_C006070                    C
BIG_TABLE                      "OBJECT_TYPE" IS NOT
NULL                             
SCOTT            SYS_C005980                    C
BIG_TABLE                      "LAST_DDL_TIME" IS NOT
NULL                           
SCOTT            SYS_C005979                    C
BIG_TABLE                      "CREATED" IS NOT
NULL                                 
SCOTT            SYS_C005978                    C
BIG_TABLE                      "OBJECT_ID" IS NOT
NULL                               
SCOTT            SYS_C005977                    C
BIG_TABLE                      "OBJECT_NAME" IS NOT
NULL                             
SCOTT            SYS_C005976                    C
BIG_TABLE                      "OWNER" IS NOT
NULL                                   

6 linhas selecionadas.


==>> SE vc tem absoluta certeza que não há NULLs nessa coluna, vc
pode criar a constraint de check de not null vc mesmo, com a opção
ENABLE NOVALIDATE, assim a tabela NÃO terá que ser varrida pra se
validar os registros, deve ser MUITO + rápido, além do que vc vai
poder ter um nome REAL, significativo, na constraints, ao invés
dessas abominações [EMAIL PROTECTED]

[]s

Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Bruno" <[EMAIL PROTECTED]> escreveu
>
> Bom Dia,
> Tenho uma tabela de 23 milhões de registros e estou enfrentando
dificuldade
> no alter table para adicionar de uma coluna not null default... já
que esse
> processo está levando em média +- 20 minutos.
> Tive a idéia de aumentar o tamanho dos meus redo que hoje estão em
100m ,
> onde tenho 3 grupos cada um com espelhamento.
> Só pra avisar uso undo management auto.
>
> Será que será válida essa minha idéia?
>
> Obrigado,
> Bruno
>






----------------------------------------------------------------------------
----------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o
link do mesmo para evitar trafego(pedidos) desnecessário.
Links do Yahoo! Grupos










--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a