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