Conversão FOR EACH para Select

Discussão em 'Banco de Dados / Database' iniciado por eduardory, Janeiro 20, 2012.

  1. eduardory

    eduardory Sem Pontuação

    Pessoal,

    Alguém sabe se é possível visualizar como o um banco SQL está transformando um FOR EACH para um Select?

    Por exemplo temos o seguinte FOR EACH e gostaria de saber como foi montado o Select para ele:

    Código:
       FOR EACH aaa,
              EACH bbb,
              FIRST ccc,
              LAST DDD:
    
       END.
    
    Existe algum programa para isso?

    Obrigado!
  2. kirchner

    kirchner Membro Participativo Moderador

    eduardory,

    Você está usando um banco diferente de Progress via Dataserver?
    Porque se for Progress o comando não é convertido p/ SELECT.

    Se for via DataServer eu tenho impressão de que isso vai gerar uma maçaroca do cão :)
  3. eduardory

    eduardory Sem Pontuação

    Acontece o seguinte:

    Temos uma aplicação feita em progress porém o BD é em SQL conectado via dataserver.
    E ao rodar um "FOR EACH" nessa base SQL como saber como é feita essa consulta ou quais chaves estão sendo utilizadas? Pois a performance caiu demais!!!!
  4. kirchner

    kirchner Membro Participativo Moderador

    Entendi,

    2 opções:

    Habilitar log do DataServer. Para isso informe "-Dsrv qt_debug,SQL" na linha de conexão. Aqui tem um exemplo:
    http://ingleses.datasul.com.br/blog/pos ... erver.aspx

    A outra opção é rastrear no SQL Server. Tem diversas formas, o mais simples é com profiler.

    A primeira opção mostra o que o DataServer acha que envia pro banco.
    A segunda mostra o que o banco realmente recebe. E é coisa :)
  5. Claudemir

    Claudemir Membro Participativo

    Buenas
    coloque esse parametro no pf de conexao do banco

    -Dsrv qt_debug,SQL

    ficaria assim

    -db "shsop206" -RO -c 8000 -db sop206h -c 8000 -N tcp -dt MSS -Dsrv ZPRGRS_MSS_DATE_RANGE,1,BINDING,0,MSS_PRESERVE_CURS,0,QT_CACHE_SIZE,30000,TXN_ISOLATION,1,qtd_debug,SQL


    esse é um exemplo que tenho, isso é de uma instalação de EMS2 COM BANCOS sql server.

Compartilhe esta Página