Ivan, Uma sugestão seria redefinir essa tabela numa particionada. O que voce acha ?
Veja a matéria no site www.oracle-base.com. Ivan Ricardo Schuster escreveu: > Marcio, agradeço sua intenção de ajudar, mas isso que voce está > sugerindo eu > já tentei e não funciona. > > Claro que dá pra fazer uma consulta utilizando um range de data, mas é > inviável. Coloquei pra rodar um select de 1 dia quando recebi teu e-mail, > mas até agora não tive resultado. Um select desse significa "procure > nos 42 > GB por todas as linhas que tenham dados do dia tal e retorne" > E isso vai acontecer para todos os dias dos últimos 3 meses. > 3(meses)X30(dias)X42GB, talvez exagerando um pouco... :) > > Quanto ao insert, conheço sim o "not exists" mas sei que o gargalo não > está > no meu merge, e sim na busca dos dados da tabela não particionada. > E pra não dizer que não verifiquei, tanto o insert quanto o merge, nos > planos de execução têm custo parecido, cerca de 500 mil > > -----Mensagem original----- > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em > nome de opsmportes > Enviada em: quinta-feira, 27 de outubro de 2005 15:00 > Para: oracle_br@yahoogrupos.com.br > Assunto: RES: [oracle_br] Re: mover dados de uma tabela grande sem indice > para outra particionada > > Não entendi! > > 1) voce pode fazer not exists - funciona > 2) claro que voce pode definir range. Não importa que voce não tenha > índice. > > insert /*+ append */ into nova_table > select * from antiga_table > where data_hora between <data_hora_ini> and <data_hora_fim> > and not exists ( select null from nova_table where > nova_tabela.algum_idUnico = antiga_table.algum_idUnico ) > > Se voce preferir, mande a estrutura das tabelas para lista e o > requerimento que a lista pode ajudar a montar a sentença. > > Quanto aos índices, não sei qual a versão do Oracle nem sua máquina, > mas voce poderia criar os índices necessários rapidamente usando > nologging/parallel e depois "dropá-los". > > > --- Em oracle_br@yahoogrupos.com.br, "Ivan Ricardo Schuster" > <[EMAIL PROTECTED]> escreveu > > Marcio, não dá, por dois motivos: > > > > 1) posso já ter os dados na tabela nova (não serve um insert) > > 2) a tabela antiga não tem índice nenhum, nem de data_hora na > tabela antiga. > > (por isso não dá pra definir range) > > > > > > Abraço > > Ivan > > > > > > -----Mensagem original----- > > De: oracle_br@yahoogrupos.com.br > [mailto:[EMAIL PROTECTED] Em > > nome de opsmportes > > Enviada em: quinta-feira, 27 de outubro de 2005 14:07 > > Para: oracle_br@yahoogrupos.com.br > > Assunto: [oracle_br] Re: mover dados de uma tabela grande sem > indice para > > outra particionada > > > > Ivan, > > > > Por que não um simples: > > > > insert /*+ append */ into tab_particionada > > select * from tab_gigante where ...; > > > > Tenha certeza que sua cláusula WHERE tenha o range da data_hora. > > > > abraços, > > -- > > Marcio Portes > > > > > > > > --- Em oracle_br@yahoogrupos.com.br, "Ivan Ricardo Schuster" > > <[EMAIL PROTECTED]> escreveu > > > Pessoal, > > > > > > Tenho uma tabela de 42 Gb de dados, não particionada, sem índices > e > > estou > > > tentando mover os dados para uma tabela particionada, com o campo > > data_hora > > > deslocado em 15 minutos e somente se este dado não existir na > > tabela nova. > > > > > > Uma consulta por range de data_hora é muito lenta, por isso, > > resolvi fazer > > > da seguinte forma: > > > > > > Um merge, utilizando "select * from tabela where rownum<50000" > > > Seguido de um commit e um "delete form tabela where rownum<50000" > > > > > > > > > A performance disto no inicio foi muito boa, mas a medida que eu > vou > > > apagando os dados iniciais da tabela, forma-se uma lacuna grande > no > > inicio > > > da mesma, tornando um simples select * from tabela where rownum<5 > > muito > > > demorado. > > > > > > Vejo aí uma única solução, que seria mover esta tabela para outra > > > tablespace, para com isso desfragmenta-la. Acredito que isto > também > > seja > > > bastante demorado. Alguém tem outra sugestão? > > > > > > Obrigado > > > Ivan > > > > > > > > > > ORACLE_BR APOIA 2ºENPO-BR > > > _____________________________________________________________________ > > O 2º Encontro Nacional de Profissionais Oracle será realizado no dia > > 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas > Palestras e > > Cases dirigidos exclusivamente por profissionais especialistas e > renomados > > no mercado. Confira a programação no site do evento! > http://www.enpo-br.org/ > > > _____________________________________________________________________ > > Area de download oracle_br - > http://www.4shared.com/dir/101727/a4dcc423 > > Links do Yahoo! Grupos > > > > > ORACLE_BR APOIA 2ºENPO-BR > _____________________________________________________________________ > O 2º Encontro Nacional de Profissionais Oracle será realizado no dia > 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas > Palestras e > Cases dirigidos exclusivamente por profissionais especialistas e renomados > no mercado. Confira a programação no site do evento! > http://www.enpo-br.org/ > _____________________________________________________________________ > Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 > Links do Yahoo! Grupos > > > > > > > > > > > ORACLE_BR APOIA 2ºENPO-BR > _____________________________________________________________________ > O 2º Encontro Nacional de Profissionais Oracle será realizado no dia > 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas > Palestras e Cases dirigidos exclusivamente por profissionais > especialistas e renomados no mercado. Confira a programação no site do > evento! http://www.enpo-br.org/ > _____________________________________________________________________ > Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 > > > *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] > <mailto:[EMAIL PROTECTED]> > > * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > ORACLE_BR APOIA 2ºENPO-BR _____________________________________________________________________ O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e Cases dirigidos exclusivamente por profissionais especialistas e renomados no mercado. Confira a programação no site do evento! http://www.enpo-br.org/ _____________________________________________________________________ Area de download oracle_br - http://www.4shared.com/dir/101727/a4dcc423 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