Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #102223
    Thiago Vilhena
    Participante

      Não estou conseguindo postar a procedure..
      vou postar só o miolo de onde eu acho que deve estar o problema


      dbms_output.put_line('TS_INI '||TS_INI);
      dbms_output.put_line('TS_FIM '||TS_FIM);
      dbms_output.put_line('TOTAL_HOUR_TPO_CPU '||TOTAL_HOUR_TPO_CPU);
      dbms_output.put_line('HOUR_CONS_MSU '||HOUR_CONS_MSU);
      dbms_output.put_line('HOUR_CONS_MIPS '||HOUR_CONS_MIPS);
      dbms_output.put_line('STEP 1');
      execute immediate
      'update DADO_SMF_DET subpartition('||S||')
      set
      DSD_CONS_MSU = DSD_CONS_MSU + :HOUR_CONS_MSU*ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI)*(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU,
      DSD_CONS_MIPS = DSD_CONS_MIPS + :HOUR_CONS_MIPS*ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI)*(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU
      where
      DSD_DT_HR_INI < :TS_INI and DSD_DT_HR_FIM > :TS_INI'
      using
      HOUR_CONS_MSU, TS_INI, TOTAL_HOUR_TPO_CPU, HOUR_CONS_MIPS, TS_INI, TOTAL_HOUR_TPO_CPU, TS_INI, TS_INI;

      dbms_output.put_line('DETALHE '||S||': 1 - QTDE UPDATES '||SQL%ROWCOUNT);
      commit;

      #102225
      Thiago Vilhena
      Participante

        Aqui pessoal..
        isso é um update q transformei em um selet!!
        Agora ta dando o seguinte erro:


        select
        DSD_CONS_MSU + :HOUR_CONS_MSUELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/decode((ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI), 0, 1,(ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI))))(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU
        -- DSD_CONS_MIPS + :HOUR_CONS_MIPSELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/decode((ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI), 0, 1,(ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI)))(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU
        from DADO_SMF_DET subpartition(RJ_SET_2011)
        where
        DSD_DT_HR_INI :TS_FIM

        ERRO

        select
        DSD_CONS_MSU + :HOUR_CONS_MSUELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/decode((ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI), 0, 1,(ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI))))(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU
        -- DSD_CONS_MIPS + :HOUR_CONS_MIPSELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/decode((ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI), 0, 1,(ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI)))(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU
        from DADO_SMF_DET subpartition(RJ_SET_2011)
        where
        DSD_DT_HR_INI :TS_FIM
        *
        Error at line 2
        ORA-00907: parêntese direito não encontrado

        Script Terminated on line 1.

        #102226
        Thiago Vilhena
        Participante


          update DADO_SMF_DET subpartition(RJ_SET_2011)
          set
          DSD_CONS_MSU = DSD_CONS_MSU + :HOUR_CONS_MSUELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/decode((ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI), 0, 1,(ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI))))(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU,
          --DSD_CONS_MIPS = DSD_CONS_MIPS + :HOUR_CONS_MIPSELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM-:TS_INI)/decode((ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI), 0, 1, ELAPSED_TIME_CENT_SEG(DSD_DT_HR_FIM - DSD_DT_HR_INI))(DSD_TPO_CPU_TCB+DSD_TPO_CPU_SRB)/:TOTAL_HOUR_TPO_CPU
          where
          DSD_DT_HR_INI :TS_INI

          #102229
          Avatar photoRegis Araujo
          Participante

            Fala Thiago..

            Vc ja verificou se existe algum lock no seu banco?
            Qual a versão do banco?

            Abraços..!

            #102234
            Thiago Vilhena
            Participante

              [quote=”Thunder_Catz”:1mz9oql3]Fala Thiago..

              Vc ja verificou se existe algum lock no seu banco?
              Qual a versão do banco?

              Abraços..![/quote]

              Sim. não tem lock eh 11R2.. po ela demorou mas fez!!, demorou bastante vi que a subpartition eh meio grande.. to pensando em tentar envenenar os updates pra ve se vai mais rapido!

              VLW

              #102236
              fabiogalera
              Participante

                Thiago,

                Procure usar o BULK COLLECT no PL/SQL, assim você pode fazer com que envie mensagens durante o processo, podendo ainda efetuar commits para evitar que perca o processo e tenha que fazer rollback de tudo.

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