Pular para o conteúdo
  • Este tópico contém 20 respostas, 6 vozes e foi atualizado pela última vez 16 anos, 9 meses atrás por Avatar photoRegis Araujo.
Visualizando 15 posts - 1 até 15 (de 21 do total)
  • Autor
    Posts
  • #86957
    Thiago Vilhena
    Participante

      Aee bom dia pessoal, Mas uma vez eu vindo aqui pedindo uma maozinha!!

      ai eu criei essa tabela aqui

      CREATE TABLE “SCOTT”.”TAB_SPED” ( “ID” NUMBER(10) NOT NULL , “FUNCIONARIO” VARCHAR2(50), “EMAIL” VARCHAR2(100), “ENDERECO” VARCHAR2(100), “CEP” NUMBER(20), “CELULAR” NUMBER(20), “DATA_NASCIMENTO” DATE, “ESTADO_CIVIL” VARCHAR2(50), “DATA_ATUAL” DATE, “NOME_MAE” VARCHAR2(30)) STORAGE ( INITIAL 20M)

      criei uma sequencia SEQ_sped,

      daí eu quero inserir 2 milhoes de linhas nessa tabela pra fazer um teste aqui, os nomes podem ser iguais e talz, a unica coisa que nao pode ser igual é o id que vai a seq_sped!!

      qual a melhor maneira e a mais rapida para eu inserir esse 2milhoes de registros???

      abração pessoal

      #86959
      Manoel872
      Participante

        Crie um bloco anonimo que execute isso.

        DECLARE
        i number(15,5):=0;
        BEGIN
        loop
        i:=i+1;
        insert……
        EXIT WHEN i=2000000;

        end loop;

        END;

        #86961
        Thiago Vilhena
        Participante

          i cara desculpa, mas nao entendi

          pode esclarecer melhor?

          abração

          #86963
          Rodrigo Mesquita
          Participante

            Faça um loop como o exemplo acima efetuando insert nesta tabela incrementando o Id em cada volta até chegar em 2 milhoes de linhas.
            faça um commit aproximadamente a cada 5 mil linhas

            #86964
            Thiago Vilhena
            Participante

              beleza rodrigao,
              Tipo se eu rodar esse loop, como que eu vou estipular o commit?

              abração!!

              #86968
              Thiago Vilhena
              Participante

                pessoal!! acho que sentei a maquina com esse script ahdsuidauidsh

                vou esperar um tempo ve oq acontece!! vou almoçar!! xD

                #86969
                Avatar photoLeonardo Litz
                Participante

                  Faça como o Rodrigo disse, a cada 5 mil registros faça um commit, desta forma vc liberá memória do servidor.

                  declare

                  begin

                  for dd in 1..2000000 loop

                  insert ….

                  if(dd mod 5000 = 0)then
                  commit;
                  end if;

                  end loop;

                  end;

                  Valeu Leonardo Litz

                  #86974
                  Rodrigo Mesquita
                  Participante

                    é isso mesmo…é só fazer como o exemplo do Litz…se vc fizer sem ir executando o commit será muito dificil concluir o insert.

                    #86976
                    Thiago Vilhena
                    Participante

                      Po pessoal, eu fiz das 2 maneiras dai meu SQLPLUS trava, vou diminuir um pouco fazer de 2mil em 2mil ve se nao trava

                      #86977
                      Rodrigo Mesquita
                      Participante

                        posta teu código aqui para a gente da uma olhada.

                        #86978
                        Thiago Vilhena
                        Participante

                          beleza pessoal meio que funcionou, só que tipo nao ta inserindo em sequencia tipo 1,2,3,4,5,6,7,
                          ta inserindo assim ó

                          SQL> select id from scott.tab_sped_teste;

                          ID
                          ———-
                          2757537
                          2757538
                          2757539
                          2757540
                          2757541
                          2757542
                          2757543
                          2757544
                          2757545
                          2757546
                          2757547

                          queria que inserise 1, 2, 3, 4, 5, ,6 assim po nao desse jeito

                          #86979
                          Rodrigo Mesquita
                          Participante

                            Como vc fez o insert? ele é para ter feito na ordem. De qualquer maneira é só vc ordenar no select.

                            #86980
                            Thiago Vilhena
                            Participante

                              meu insert ta assim

                              insert into scott.tab_sped_teste2 values(seq_sped2.nextval,’thiago’,’thiago@gmail.com’,’castelinho que

                              pegou fogo’,21010154,76085996,’10/02/1766′,’enrolado’,’25/05/2009′,’MAME_QUERIDA’);

                              #86981
                              Thiago Vilhena
                              Participante

                                Deve ser minha sequence, to vendo aqui se corrijo

                                #86982
                                Thiago Vilhena
                                Participante

                                  Minha sequencia ta assim!!

                                  CREATE SEQUENCE “SCOTT”.”SEQ_TESTE2″ NOCYCLE ORDER CACHE 20 MAXVALUE 2000000 MINVALUE 1 INCREMENT BY 1 START WITH 1

                                Visualizando 15 posts - 1 até 15 (de 21 do total)
                                • Você deve fazer login para responder a este tópico.