Olá Cyro,
 
Como o irmão Chiappa replicou aqui com o gerenciamento LMT vc não terá 
preocupações quanto a isso. 
Mesmo assim vale a pena vc catalogar os objetos que tem aumento considerável de 
tamanho para que
não seja pego de surpresa em momentos críticos.
 
Segue um outro exemplo (antigo) que realiza a tarefa que vc gostaria que 
fizesse :
 
 SET LINESIZE 120
 COLUMN TABLESPACE_NAME FORMAT A25
 COLUMN SEGMENT_NAME FORMAT A25
 COLUMN OWNER FORMAT A20 
 
SELECT OWNER,SEGMENT_NAME, NEXT_EXTENT, S.TABLESPACE_NAME,MAX_FREE_BYTES
 FROM SYS.DBA_SEGMENTS S,
    (SELECT TABLESPACE_NAME,MAX(BYTES) MAX_FREE_BYTES
     FROM SYS.DBA_FREE_SPACE
     GROUP BY TABLESPACE_NAME) F
 WHERE S.NEXT_EXTENT > F.MAX_FREE_BYTES
  AND S.TABLESPACE_NAME=F.TABLESPACE_NAME;
 
[ ] ´s
Salvio Padlipskas
 
    

-----Mensagem original-----
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de jlchiappa
Enviada em: quinta-feira, 3 de agosto de 2006 16:28
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Script para verificar o next extent - ORA-01653


Os que não conseguirão é o script mais abaixo na resposta, sim , 
achou ???? Só como eu digo, pra mim isso é abobrinha, é inútil, se vc 
está gerenciando banco com tablespaces LMT como deveria ser...

[]s

Chiappa
--- Em oracle_br@yahoogrupos.com.br, Cyro <[EMAIL PROTECTED]> escreveu
>
> Putz... Me desculpa, foi erro de portugues mesmo. O que eu queria 
saber era
> os que não conseguirão. Valeu pela ajuda mesmo assim.
> 
> On 8/3/06, jlchiappa <[EMAIL PROTECTED]> wrote:
> >
> > Se vc realmente quis dizer "conseguiram", no passado, o lance é 
que
> > afaik o bd Oracle ** não ** arnmazena a data/hora em que um novo
> > segmento foi alocado (só há um id sequencial), assim o que vc pode
> > fazer é consultar a DBA_EXTENTS, guardando a situação atual, e 
daqui
> > a algum tempo consulta de novo, veja se entraram segmentos novos ,
> > embora eu NÃO entenda bem pra que isso te servirá.
> > Já se vc quer saber os objetos que NÃO CONSEGUIRÃO , no futuro,
> > alocar um novo extent (isso sim tem algum sentido, é evitar o erro
> > de "unable to allocate extent")  não é difícil, é listar os 
objetos
> > onde o espaço livre nas tablespaces às quais eles pertencem seja
> > MENOR do que o NEXT_EXTENT dos objetos, isso fica registrado 
normal,
> > seria algo tipo o exemplo abaixo. NOTAR PORÉM que eu escrevi o 
que vc
> > pediu, mas NÃO FAZ SENTIDO a rotina se vc está usando, como 100%
> > RECOMENDADO, tablespaces LMT ** e ** cada grupo de objetos de 
mesmo
> > extent-size numa mesma tablespace, pois em tablespaces LMT o 
extent-
> > size é sempre o MESMO, ou pelo menos múltiplo no caso de
> > autoallocated, nesse cenário ao invés de gerenciar espaço por
> > segmento, vc gerencia por tablespace : no caso descrito, se vc tem
> > digamos 100 objetos na tablespace com extent de 1 Mb, se vc 
garantir
> > que a TABLESPACE tenha 100 Mb livres ao menos vc não obterá 
o "unable
> > to extent". Mas de qquer forma segue o exemplo :
> >
> > [EMAIL PROTECTED]:SQL>select s.owner, s.segment_type, 
s.partition_name,
> > s.tablespace_name, s.next_extent, sum(f.bytes) livre
> >    2     from dba_segments s, dba_free_space f
> >    3    where s.owner not in ('SYS')
> >    4      and s.tablespace_name = f.tablespace_name
> >    5    group by s.owner, s.segment_type, s.partition_name,
> > s.tablespace_name, s.next_extent
> >    6     having sum(f.bytes) < s.next_extent;
> >
> > não há linhas selecionadas
> >
> > ==> veja que durou segundos (apesar de desenvolvimento esse banco 
não
> > é tão pequeno assim), query bem boazinha, nada de mais (ao menos 
no
> > meu banco , 9ir2 EE)....
> >
> > Decorrido: 00:00:00.05
> >
> > ==> já que não tenho nenhum, vou quebrar TODAS as regras de bom-
tom
> > em gerenciamento de espaço e vou montar um caso :
> >
> > [EMAIL PROTECTED]:SQL>create tablespace TS_TESTE
> > datafile '/u2/oradata/srvdev/dados/ts_teste_01.dbf' size 10M
> >    2  extent management dictionary nologging;
> >
> > Tablespace criado.
> >
> > Decorrido: 00:00:00.02
> >
> > [EMAIL PROTECTED]:SQL>create table TB_TESTE (c1 number) tablespace
> > ts_teste storage(initial 1m next 20m) nologging;
> >
> > Tabela criada.
> >
> > Decorrido: 00:00:00.00
> > [EMAIL PROTECTED]:SQL>select * from dba_segments where
> > segment_name='TB_TESTE';
> >
> > OWNER            SEGMENT_NAME
> > PARTITION_NAME                 SEGMENT_TYPE
> > TABLESPACE_NAME                       HEADER_FILE
> > HEADER_BLOCK              BYTES             BLOCKS
> > ---------------- ----------------------------------- -------------
---
> > -------------- ------------------ ------------------------------ -
----
> > ------------- ------------------ ------------------ --------------
----
> > ----------
> > SYSTEM
> > TB_TESTE
> > TABLE              TS_TESTE
> > 23                  2            1064960
> > 130
> >
> > Decorrido: 00:00:00.00
> >
> > [EMAIL PROTECTED]:SQL>select s.owner, s.segment_type, 
s.partition_name,
> > s.tablespace_name, s.next_extent, sum(f.bytes) livre
> >    2     from dba_segments s, dba_free_space f
> >    3    where s.owner not in ('SYS')
> >    4      and s.tablespace_name = f.tablespace_name
> >    5    group by s.owner, s.segment_type, s.partition_name,
> > s.tablespace_name, s.next_extent
> >    6     having sum(f.bytes) < s.next_extent;
> >
> > OWNER            SEGMENT_TYPE       PARTITION_NAME
> > TABLESPACE_NAME                       NEXT_EXTENT              
LIVRE
> > ---------------- ------------------ ------------------------------
--
> > ---------------------------- ------------------ ------------------
> > SYSTEM           TABLE
> > TS_TESTE                                 20971520            
9412608
> >
> > Decorrido: 00:00:00.05
> >
> >
> > []s
> >
> > Chiappa
> >
> >
> >
> > --- Em oracle_br@yahoogrupos.com.br, Cyro <[EMAIL PROTECTED]> 
escreveu
> >
> > >
> > > Olá a todos, alguem possui um script para verificar se os 
objetos
> > > conseguiram alocar um next extent ? Eu procurei no google e só
> > achei scripts
> > > muito pesados.
> > >
> > > Agradeço desde já.
> > >
> > > --
> > > [ ]´s Cyro
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram 
removidas]
> > >
> >
> >
> >
> >
> >
> > 
> >
> 
> 
> 
> -- 
> [ ]´s Cyro
> 
> 
> [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 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/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__________________________________________________________________
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

<*> 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

 



Responder a