Pular para o conteúdo
  • Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 17 anos, 1 mês atrás por David Siqueira.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #85320
    dfguiraldelli
    Participante

      Bom dia a todos,

      estou com uma duvida referente a um DB. Estou fazendo o acompanhamento de uma base oracle em que o oracle funciona mais como um repositório de dados. Toda a lógica está na aplicação que é desenvolvida com Genexus.

      Este banco tem apresentado muito parse de SQL, isto seria pq todo o código está na aplicação e toda vez que alguem abre uma tela ele manda um caminhao de coisas? ou se eu colocar mais memoria na Shared Pool pode resolver?

      Desde já agradeço a atenção de todos.

      #85321
      Ishii
      Participante

        Olá,

        Resposta para a primeira pergunta: SIM, uma vez que todo o código está na Aplicação isso tudo trafega pela rede e vai para o Oracle mesmo….

        Resposta para a segunda pergunta: DEPENDE, pode ser que em alguns casos isso resolva mas não seria uma regra, e sempre deverá ser analisado caso a caso.

        []’s Ishii

        #85324
        dfguiraldelli
        Participante

          Ok,

          obrigado.

          #85325
          David Siqueira
          Participante

            Cara reforçando o que o Ishi disse, as aplicações não ORACLE, ou seja outros front-ends diferentes de Forms, tendem a fazer muito mais HARD PARSE se seu CURSOR_SHARING estiver como SIMILAR, pois ele não reaproveita os comandos SQL passados via BIND Variable, portanto é necessário fazer uma readaptação do parametro para que ele possa melhorar as performance dos possiveis HARD_PARSES para SOFT PARSES, você consegue ver isso atráves de uma visão de Banco , ha um campo chamado BIND_MISMATCH ( Bind pedidas) onde as incidencias de Y demosntram que seu banco não esta reaproveitando os comandos enviados pela aplicação não-Oracle. Segue abaixo a quere é bem simples :

            [b]select a.bind_mismatch,b.sql_text,c.sid,c.serial#
            from v$sql_shared_cursor a,v$sqltext b,v$session c
            where a.sql_id=b.sql_id
            and b.hash_value=c.sql_hash_value;[/b]

            Espero ter ajudado.

            Abcs.

            David Ricardo

            #85332
            dfguiraldelli
            Participante

              David,

              o parametro “cursor_sharing” está em “exact”.

              executei a query que voce me passou e todas as linhas retornaram “N”.

              isto seria um bom sinal? de que o oracle está usando bem a shared pool.

              tks.

              #85333
              David Siqueira
              Participante

                Library meu amigo Library..sim isso é um bom sinal, isso indica que seus comandos estão sendo reaproveitados de maneira eficiente pela aplicação.

                Abcs.
                David

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