4D v16.3

DESCRIBE QUERY EXECUTION

Home

 
4D v16.3
DESCRIBE QUERY EXECUTION

DESCRIBE QUERY EXECUTION 


 

DESCRIBE QUERY EXECUTION ( Status ) 
Parameter Typ   Beschreibung
Status  Boolean in Wahr=Aktiviere interne Suchanalyse
Falsch=Deaktiviere interne Suchanalyse

Der Befehl DESCRIBE QUERY EXECUTION aktiviert oder deaktiviert den Modus Suchanalyse für den aktuellen Prozess. Er funktioniert nur im Rahmen der Suchbefehle der 4D Programmiersprache, wie z.B. QUERY.
Hat der Parameter Status den Wert Wahr, wird der Modus Suchanalyse aktiviert. In diesem Modus speichert die 4D Engine intern zwei spezifische Informationsteile für die nachfolgenden Suchen innerhalb der Daten.

  • Eine ausführliche interne Beschreibung der Suche unmittelbar vor der Ausführung, mit anderen Worten, was zur Ausführung der Suche geplant ist (der Suchplan)
  • Eine ausführliche interne Beschreibung der gerade ausgeführten Suche (der Suchpfad)

Die aufgezeichnete Information enthält die Art der Suche (indiziert, sequentiell), die Anzahl der gefundenen Datensätze und die Zeit, die zur Ausführung aller Suchkriterien benötigt wird.
Mit den Funktionen Get last query plan und Get last query path können Sie diese Information dann auslesen.

Die Beschreibung des Suchplans und des Suchpfads sind in der Regel gleich. Unterschiede können sich ergeben, da 4D während der Suchausführung dynamische Optimierungen implementieren kann, um eine bessere Performance zu erzielen. So wird z.B. eine indizierte Suche bei Bedarf in eine sequentielle Suche umgewandelt, wenn 4D davon ausgeht, dass dies schneller ist. Das ist z.B. der Fall, wenn die Anzahl der zu durchsuchenden Datensätze relativ gering ist.
Übergeben Sie Falsch im Parameter Status, wenn Sie die Suchläufe nicht mehr analysieren wollen. Die Suchanalyse kann nämlich die Ausführung des Programms verlangsamen.

Dieses Beispiel zeigt die Art der Info, die diese Befehle liefern:

 C_TEXT($vResultPlan;$vResultPath)
 DESCRIBE QUERY EXECUTION(True//analysis mode
 QUERY([Employees];[Employees]LastName="T@";*) // Search for employees whose last name starts with T...
 QUERY([Employees]; & ;[Companies]Name="H@";*) // that work for a company whose name starts with H
 QUERY([Employees]; & ;[Employees]Salary>2500;*) // whose salary is > 2500
 QUERY([Employees]; & ;[Cities]Pop<50000) // that live in a city with less than 50,000 inhabitants
 $vResultPlan:=Get last query plan(Description in text format)
 $vResultPath:=Get last query path(Description in text format)
 DESCRIBE QUERY EXECUTION(False//End of analysis mode

Nach Ausführen dieses Code enthalten $vResultPlan und $vResultPath Beschreibungen der ausgeführten Suchen, zum Beispiel:

$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 records found in 1 ms)

Ist in der Funktion Get last query path die Konstante Description in XML Format übergeben, zeigt $vResultPath die Beschreibung der Suche im XML Format:

$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>



Siehe auch 

Get last query path
Get last query plan

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Suchen
Nummer: 1044

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v11 SQL Release 1

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)