4D v16.3

DESCRIBE QUERY EXECUTION

Página Inicial

 
4D v16.3
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 funciona unicamente no contexto dos comandos de pesquisa da linguagem 4D tal como QUERY.

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 seguinte exemplo ilustra o tipo de informação obtida utilizando estes comandos:

 C_TEXT($vResultPlan;$vResultPath)
 DESCRIBE QUERY EXECUTION(True//modo análise
 QUERY([Employees];[Employees]LastName="T@";*) // Pesquisa dos empregados cujo sobrenome começa por T...
 QUERY([Employees]; & ;[Companies]Name="H@";*) // que trabalham para uma empresa cujo nome começa por H
 QUERY([Employees]; & ;[Employees]Salary>2500;*) // cujo salário é > 2500
 QUERY([Employees]; & ;[Cities]Pop<50000) // que vivem em uma cidade com menos de 50000 habitantes
 $vResultPlan:=Get last query plan(Description in text format)
 $vResultPath:=Get last query path(Description in text format)
 DESCRIBE QUERY EXECUTION(False//Fim do modelo de análise

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

$vResultPlan :
   Employees.LastName == T@ And Employees.Salary > 2500 And Join on Table : Companies  :  Employees.Company = Companies.Name [index : Companies.Name ] LIKE H@ And Join on Table : Cities  :  Employees.City = Cities.Name [index : Cities.Pop ] < 50000
$vResultPath :
(Employees.LastName == T@ And Employees.Salary  > 2500) And (Join on Table : Companies  :  Employees.Company  = Companies.Name with filter {[index : Companies.Name ] LIKE H@}) And (Join on Table : Cities  :  Employees.City = Cities.Name with filter {[index : Cities.Pop ] < 50000})   (3 registros encontrados em 1 minuto)

Se a constante Description in XML Format se passa ao comando Get last query path, $vResultPath contém a descrição da pesquisa expressada em XML:

$vResultPath : 
   <QueryExecution>
      <steps description="And" time="0" recordsfounds="1227">
         <steps description="[Merge] : ACTORS with CITIES" time="13" recordsfounds="1227">
            <steps  description="[Join] : ACTORS.Birth_City_ID =CITIES.City_ID" time="13"  recordsfounds="1227"/>
         </steps>
      </steps>
   </QueryExecution>



Ver também 

Get last query path
Get last query plan

 
PROPRIEDADES 

Produto: 4D
Tema: Pesquisas
Número 1044

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v11 SQL Release 1

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)