-----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: | |
|
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 Termos do Serviço do Yahoo!.