Pular para o conteúdo
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #90773
    MauroLacerda
    Participante

      Bom dia,

      Com o problema dos desenvolvedores não usarem bind variables, gostaria de pedir uma ajuda para a utilização do parametro cursor_sharing=FORCE.
      Apesar de ter lido varios artigos sobre o assunto, ainda restaram muitas duvidas. A uso do parametro como FORCE é bom? Se é bom porque não é default?

      Desde já agradeço a ajuda,

      Abs.

      #90775
      juliano_sf
      Participante

        Olá,

        Geralmente qiuando você trabalha só com campos simples (varchar2, number, date, etc), o cursor_sharing=force funciona legal. Porém, já tive problemas com uma aplicação Delphi que usava campos MEMO, aí dava pau.

        Lembre-se que setando CURSOR_SHARING=force vai fazer com que todos os SQLs parecidos tenham o mesmo plano de execução, o que em certos casos pode não ser bom.

        O melhor de setar CURSOR_SHARING=force é que ele agrupa os SQLs parecidos no statspack, aí você saberá exatamente qual SQL atacar em uma rodada de tuning.

        CURSOR_SHARING=force, obviamente, também reduz o trabalho no parse, já que ele reusa os SQLs, porém, nunca observei ganhos com isso na prática, apesar da documentação dizer que esta fase de parse (hard parse) é muito custosa.

        Espero que ajude

        #90776
        hudsona
        Participante

          O Ideal é que se use as variavéis bind, não tem para onde fugir. Porém o parametro CURSOR_SHARING=force traz sim um ganho de performance,
          Definir CURSOR_SHARING = force reduz a disputa sobre o cache de biblioteca e consumo reduzido de CPU.
          Você mesmo pode efetuar testes e tirar a sua conclusão.

          #90779
          MauroLacerda
          Participante

            Prezados,

            Infelizmente a briga entre DBA e Desenvolvedor para o assunto BIND é grande. Mais ainda se os sistemas forem de terceiros.
            De qualquer forma agradeço a ajuda de todos.

            #90780
            hudsona
            Participante

              Concordo Plenamente, essa é uma briga que pelo menos eu, vi poucos DBAs ganharem . E quando o software é de terceiros é uma das situações mais indicadas para o uso do CURSOR_SHARING=force , porque ai não podemos alterar o código da aplicação.

              #90781
              Avatar photolilian
              Participante

                Pessoal

                Só para compartilhar experiências: Eu utilizei em um projeto anterior cursor_sharing = force e =similar, em uma aplicação com gigantescos problemas de bind …. e não obtive muito sucesso, tive um lentidão absurda e alguns erros na aplicação (Oracle 10G em RAC)

                Por isso, creio que seja interessante o teste. O desempenho pode variar de ambiente para ambiente.

                Até mais,

                #90784
                vieri
                Participante

                  monitore o uso da shared_pool e wait’s event’s “concurrency” antes e depois da alteração do parâmetro.

                  A alteração desse parâmetro só surtira o efeito desejavel
                  se vc realmente tiver problemas com Falta de Bind’s , pois vc pode ter falta de Bind’s mas isso não te gerar problemas varia muito de ambiente para ambiente !!

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