--- Em oracle_br@yahoogrupos.com.br, Marcelo Cauduro <[EMAIL PROTECTED]> escreveu > > Pessoal, > > Lendo o Oracle Concepts Part II, Chapter 2 and 3, fiquei com as seguintes > dúvidas : > > Um segmento é só para um objeto certo ?
Um segmento = um objeto ** lógico **, ou seja, um item que possui storage. Por exemplo, 1 tabela simples (heap table) = 1 objeto lógico = 1 segmento, mas para tabelas particionadas é CADA PARTIÇÃO = 1 objeto lógico = 1 segmento, já que cada partição pode ser fisicamente diferente, alocada em locais e formas diferentes. > > Quando você apaga linhas de uma tabelas, os extents de um determinado > segmento que continham essas linhas nâo sâo liberados para novas linhas ? São automaticamente liberados pra novas linhas, MAS desde que seja insert na mesma tabela. >Há > alguma excessao ? Não, em sendo tabelas e índices "comuns". > > Pelo que li ele só são liberados quando uma nova insercao é feita, Incorreto : assim que as qtdades de deleções num bloco ultrapassam o especificado em PCTFREE, e sempre respeitando PCTUSED, o bloco vai pra lista de blocos livres, está LIBERADO pra reuso, e será TRANQUILAMENTE reusado quando for necessário, SEJA pra INSERTs, SEJA pra UPDATEs que ultrapassaram o espaço atual. > que isto naum é feito na hora da exclusao ? É feito, mas o conceito aqui é : pra se obter a melhor performance possível em INSERTs/UPDATEs, assim que a tabela é criada, mesmo estando VAZIA, o banco já aloca um extent pra ela, e conforme vão ocorrendo novos INSERTs/UPDATEs que precisem de espaço, novos extents vão sendo alocados pra tabela. A chave aqui é, já que na maioria das vezes num banco de dados ativo a maioria das tabelas são dinâmicas (ie, hoje cresceu, daqui a pouco já tem deleção, logo depois tem novas inserções) pra poupar tempo e ganhar performance o banco considera TODO o espaço alocado pra um segmento como pertencente a ele, quando há deleções ou DMLs que livrem espaço, o espaço é livre MAS é espaço livre para uso DESSE segmento dono, é isso : assim, o banco se poupa o trabalho de ter que alocar novos extents. É por isso que tabelas de "transação", que só crescem num job tipo fim de mês, e crescem aleatoriamente, muitas vezes até diminuindo em muito de tamanho, se desejado reaproveitamento desse espaço por OUTRAS tabelas, em princípio deveriam ser TRUNCADAS, aí sim o espaço livre delas fica disponível pra qquer outro segmento do banco, com exceção do extent inicial. []s Chiappa -------------------------------------------------------------------------------------------------------------------------- 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/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED] __________________________________________________________________ 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