Pular para o conteúdo
  • Este tópico contém 7 respostas, 2 vozes e foi atualizado pela última vez 18 anos, 6 meses atrás por Marcio68Almeida.
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #76104
    gbarbi
    Participante

      olá!
      estou com um problema para fazer um select em uma tabela e usar o que no SQL seria with(nolock).

      no Oracle achei algo sobre READ_LOCK_TYPE=nolock, mas não achei como usa-lo.

      meu problema é que preciso fazer um select dentro do outro, fazendo counts e tudo mais.. porém a tabela possue 8 milhões de registros, e fica muuuuito lento..

      portanto, se alguem souber como fazer um select somente nos registros que estiverem commited, agradeço!

      #76106
      Marcio68Almeida
      Participante

        Bom, vamos ao que eu entendi da documentação…
        Se você colocar READ_LOCK_TYPE=NOLOCK, as tabelas com lock não poderão ser utilizadas na sua consulta.
        Se você colocar READ_LOCK_TYPE=ROW, a tabela poderá ser usada desde que ROW SHARE esteja defindo.
        Se você colocar READ_LOCK_TYPE=TABLE, a tabela poderá ser usada desde que SHARE esteja defindo.

        Você está querendo ler tabelas que estão com lock, ou está querendo que a sua consulta não gere lock durante o processo ???
        Se for a primeira opção, acho que as informações acima resolvem…
        Caso seja a segunda opção, aconselho o uso de cursores…

        #76123
        gbarbi
        Participante

          é a primeira opcao mesmo! eu ate tinha entendido corretamente, mas o caso é, como usar!?
          por exemplo, tenho uma query, como a que esta abaixo:

          select *
          from tb_teste
          where campo_teste null

          onde que eu coloco o READ_LOCK_TYPE=NOLOCK?
          preciso setar ele, ou algo do tipo? pois quando coloco ele acima da query, e executo ele mais a query, não funciona, ocorre erro pois estou usando incorretamente ele.

          #76142
          gbarbi
          Participante

            é a primeira opcao mesmo! eu ate tinha entendido corretamente, mas o caso é, como usar!?
            por exemplo, tenho uma query, como a que esta abaixo:

            select *
            from tb_teste
            where campo_teste null

            onde que eu coloco o READ_LOCK_TYPE=NOLOCK?
            preciso setar ele, ou algo do tipo? pois quando coloco ele acima da query, e executo ele mais a query, não funciona, ocorre erro pois estou usando incorretamente ele.

            #76125
            Marcio68Almeida
            Participante

              Bom… não tenho bem certeza, mas pela documentação que vi, esse parâmetro está na conecção, mas creio que deva estar dentro deuma transação Begin…End.

              #76145
              Marcio68Almeida
              Participante

                Bom… não tenho bem certeza, mas pela documentação que vi, esse parâmetro está na conecção, mas creio que deva estar dentro deuma transação Begin…End.

                #76126
                Marcio68Almeida
                Participante

                  Bom… não tenho bem certeza, mas pela documentação que vi, esse parâmetro está na conecção, mas creio que deva estar dentro deuma transação Begin…End.

                  #76147
                  Marcio68Almeida
                  Participante

                    Bom… não tenho bem certeza, mas pela documentação que vi, esse parâmetro está na conecção, mas creio que deva estar dentro deuma transação Begin…End.

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