4D v12.4

DESCRIBE QUERY EXECUTION

Página Inicial

 
4D v12.4
DESCRIBE QUERY EXECUTION

 

DESCRIBE QUERY EXECUTION 


 

DESCRIBE QUERY EXECUTION ( estado ) 
Parâmetro Tipo   Descrição
estado  Booleano in True=Ativar análises de pesquisas internas, False=Desativar o análises de pesquisas internas

O comando DESCRIBE QUERY EXECUTION permite ativar ou desativar o modo de análise da execução de pesquisas para o processo atual. O comando considera indiferentemente as pesquisas efetuadas através da linguagem 4D ou por SQL.

A chamada do comando com o parâmetro estado em True ativa o modo da análise de pesquisas. Neste modo, o motor de 4D registra internamente duas séries de informações específicas para cada pesquisa posterior efetuada sobre os dados:

  • Uma descrição interna detalhada da pesquisa justo antes de sua execução, em outras palavras, a pesquisa prévia (o plano de pesquisa),
  • Uma descrição interna detalhada da pesquisa que foi executada realmente (a rota de pesquisa).
A informação registrada inclui o tipo de pesquisa (indexada, seqüencial), o número de registro encontrados e o tempo necessário para cada critério de pesquisa a executar. Pode ler esta informação utilizando os comandos Get Last Query Plan e Get Last Query Path.

Geralmente, a descrição do plano de uma pesquisa e sua rota são idênticos, mas poderiam eventualmente ser diferentes porque 4D poderia implementar otimizações dinâmicas durante a execução da pesquisa para melhorar o rendimento. Por exemplo, una pesquisa indexada pode ser convertida dinamicamente em uma pesquisa seqüencial se o motor 4D estima que seria mais rápida, este é o caso, quando o número de registros nos quais é realizada a pesquisa for baixo.

Passe False no parâmetro estado quando não necessite analisar as pesquisas. O modo de análise da execução das pesquisas pode tornar lenta a aplicação.

Exemplo  

O exemplo a seguir ilustra o tipo de informação obtida utilizando estes comandos no caso da pesquisa SQL:

 C_TEXT($vResultPlano;$vResultRota)
 ARRAY TEXT(aNom_Atores;0)
 ARRAY TEXT(aNom_Cidades;0)
 DESCRIBE QUERY EXECUTION(True`modo análise
 Begin SQL
    SELECT ATORES.Nome, CIDADES.Nome_Cidade
    FROM ATORES, CIDADES
    WHERE ATORES.Nascimento_Cidade_ID=CIDADES.Cidade_ID
    ORDER BY 1
    INTO :aNome_Atores, :aNome_Cidades;
 End SQL
 $vResultPlano:=Get Last Query Plan(Descrição in Text Format)
 $vResultRota:=Get Last Query Path(Descrição in Text Format)
 DESCRIBE QUERY EXECUTION(False`Fim modo análise

Depois de executar este código, $vResultPlano e $vResultRuta contém as descrições das pesquisas realizadas, por exemplo:

$vResultPlano:
   [Join] : ATORES.Nascimento_Cidad_ID= CIDADES.Cidade_ID
$vResultRuta:
   And
      [Merge] : ATORES com CIDADES
         [Join] : ATORES.Nascimento_Cidade_ID= CIDADES.Cidade_ID (1227 records found in 13 ms)
      --> 1227 records found in 13 ms
   --> 1227 records found in 14 ms

Se a constante Description in XML Format se passa ao comando Get Last Query Path, $vResultRuta contém a descrição da pesquisa expressa em XML:

$vResultRuta: 
   <QueryExecution>
      <steps description="y" time="0" recordsfounds="1227">
         <steps description="[Merge] : ATORES com CIDADES" hora="13" recordsfounds="1227">
            <steps description="[Join] : ATORES.Nascimento_Cidade_ID=CITIES.Cidade_ID" hora="13" recordsfounds="1227"/>
         </steps>
      </steps>
   </QueryExecution>

 
PROPRIEDADES 

Produto: 4D
Tema: Pesquisas
Número 1044

 
HISTÓRIA 

Criado por: 4D v11 SQL Release 1

 
VER TAMBÉM 

Get Last Query Path
Get Last Query Plan