Pular para o conteúdo
  • Este tópico contém 10 respostas, 6 vozes e foi atualizado pela última vez 18 anos, 1 mês atrás por Ishii.
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #77343
    Barata
    Participante

      Tenho uma aplicação que faz o processamento no oracle, porém está levando em torno de 50 minutos, notei que durante este processamento o consumo da CPD varia somente de 15 a 20 %, Teria alguma forma de almentar este uso da CPU para diminuir o tempo de processamento.
      SO Windows 2003 Server, 2 Processador Xeon 3.2, 3.0Giga de Memória.

      Obrigado,

      João Carlos Carvalho.

      #77346
      Marcio68Almeida
      Participante

        Você pode controlar (limitar) o uso da CPU, se não há limitação, o banco vai usar o que tiver disponível, se você notou que está usando pouca CPU, então provavelmetne há um gargalo em outro ponto, veja memória e disco, que são os principais vilões do banco.

        #77352
        Barata
        Participante

          Este provável gargalo de disco ou memória, seria as configurações do Oracle sobre eles? E quais seria o prováveis parametros para configurar? Uso somente um banco com um tablespace de 900MB e usado 480MB, SGA Total de 892MB com com 71% de cache de buffer e 26% de pool compartilhado, pga_aggregate_target=287MB,processes=150.

          Obrigado,

          João Carlos Carvalho.

          #77357
          drumond
          Participante

            Pergunta, sua aplicacao eh Web, Duas camadas, tres camadas ???

            #77365
            Marcio68Almeida
            Participante

              Bom, depende de como está escrito o teu processo, se você faz muito IO (gravação e leitura), isso degrada por causa do disco.
              Se você coloca tudo em memória, pode degradar, uma opção é o uso de cursores.
              Se você tem outros aplicativos rodando na mesma máquina, tipo apache, IAS, etc, eles concorrem com a memória.
              Pode ser que seu disco esteja muito fragmentado e/ou fazendo swap.
              Pode ser que a sua memória esteja muito fragmentada obrigando o swap…
              Meu conselho é que você destrinche o teu processo e verifique cada passo, o que ele faz e quanto tempo demora, vai certamente encontrar o gargalo… 😀

              #77399
              Barata
              Participante

                Drumond, é um sistema para desktop(exe), feito em 2 camadas.
                Marcio: Não posso destrinchar o processo pois esta aplicação é de terceiros. Acompando nos gráficos gerados durante o processamento percebo muito pouca utilização de I/O e quase tudo no consumo da CPU, Não tenho nenhum outro aplicativo rodando consumindo memória ou CPU, o estranho é que o consumo do CPU durante o processamento sempre fica entre 15 a 20% sem qualquer pico, inclusive é um computador novo somente com função de banco, o pior é que prometi que esse processamento melhoraria com esta nova máquina… Estou começando achar que é este 2003 Server….
                Ou temos alguma outra opção?

                Obrigado,
                João Carlos Carvalho.

                #77447
                Helio
                Participante

                  Para aumentar o uso de CPU ,
                  altere sua query para uso de processamento paralelo.

                  #77449
                  Marcio68Almeida
                  Participante

                    Bom, outra alternativa é aumentar a prioridade de processamento, se bem que não creio que isso ajude alguma coisa, já que tem CPU livre e o Oracle não está buscando…
                    Quanto ao I/O, a única alternativa, já que o produto é de terceiros, é aumentar a memória, quanto ele está usando de memória e quanto tem ???
                    O Windows 2003 é bom, mas nada como um bom Linux…
                    Mas certametne conversar com o fornecedor sobre seu problema continua sendo prioridade…

                    #77477
                    chduarte
                    Participante

                      Acredito que a melhor forma de trabalhar com este tipo de situacao é o Resource Manager. Voce consegue dar niveis de CPU diferentes para cada grupo consumidor.
                      Se nao for possivel, o ideal é vc trabalhar nas queries que estao rodando para ver se dar para criar algum indice para melhor a performance.

                      Grande []

                      #77578
                      Barata
                      Participante

                        Bem, acho que o problema pode ser este, estou mandando este processamento de um client, no client o uso da CPU fica 100% e no servidor do BD 15% a 20%, a utilização da rede é insignificante(2%) durante o processamento. E dependendo da capacidade da máquina client o tempo é superior ou inferior. Pergunto no Oracle é comum este comportamento para aplicação Desktop? Ou é meu fornecedor da aplicação que desenvolveu este com a metodologia Espaguetti(código tudo misturado)? E se tem alguma coisa que eu possa fazer que não dependa do fornecedor?

                        Obrigado,

                        #77583
                        Ishii
                        Participante

                          Barata,

                          Pela sua descrição tenho algumas informações que pode ter ajudar (ou não…). O processamento em torno de 15% da CPU se deve ao fato dos Processos Oracle ficarem sempre ativos no W2003 (PMON,SMON, LGWR etc) e o conjunto deles é que deve estar consumindo a CPU isso é bastante diferente no Linux/UNIX, por sua aplicação ser 2 camadas e o tempo de resposta ser relativo a capacidade da máquina Cliente, posso lhe afirmar que o Oracle está sendo utilizado apenas como Repositório de Dados sendo que as Regras de Negócios e provalvemente o “pesado” da Programação estar no Executável Compilado do seu Fornecedor. Esperimente executar o programa direto no Servidor W2003, provavelmente o tempo e o processamento será bem melhor. Como sugestão utilize o Stat Packs da Oracle para uma análise, mas acho que será inevitável uma conversa com o seu Fornecedor. E respondendo a sua Pergunta: No Oracle, como em qualquer Banco de Dados relacional, se a programação não utilizar os Recursos do Banco de Linguagem (PL, Transact etc) para aplicações em 2 camadas a performance sempre deixará a desejar…
                          []s e Boa sorte!

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