DESCRIBE QUERY EXECUTION

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11.1


DESCRIBE QUERY EXECUTION {(Status)}

ParameterTypBeschreibung
StatusBooleanWahr=Aktiviere interne Suchanalyse,
Falsch=Deaktiviere interne Suchanalyse

Beschreibung

Der Befehl DESCRIBE QUERY EXECUTION aktiviert oder deaktiviert den Modus Suchanalyse für den aktuellen Prozess. Er berücksichtigt sowohl Suchläufe, die in der 4D Programmiersprache als auch in SQL ausgeführt werden.

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 neuen 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 Such-ausfü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üh-rung des Programms verlangsamen.

Beispiel

Folgendes Beispiel zeigt, welche Information Sie bei einer SQL Anfrage mit diesem Befehl erhalten:

   C_TEXT($vResultPlan;$vResultPath
   ARRAY TEXT(aTitles;0)
   ARRAY TEXT(aDirectors;0)
   DESCRIBE QUERY EXECUTION(True) `Suchanalyse aktiviert
   ARRAY TEXT(aTitles;0)
   ARRAY TEXT(aDirectors;0)
   Begin SQL
      SELECT CONCAT(CONCAT(ACTORS.FirstName,' '),ACTORS.LastName),CITIES.City_Name
         FROM ACTORS, CITIES
         WHERE ACTORS.Birth_City_ID=CITIES.City_ID
         ORDER BY 2,1
         INTO :aTitles, :aDirectors;
   End SQL
   vResultPlan:=Get Last Query Plan(Description in Text Format)
   vResultPath:=Get Last Query Path(Description in Text Format)
   DESCRIBE QUERY EXECUTION(False)  `End analysis mode

Nach Ausführen dieses Code enthalten vResultPlan und vResultPath Beschreibungen der ausgeführten Suchen, z.B.:

vResultPlan: 
   [Join] : ACTORS.Birth_City_ID = CITIES.City_ID
vResultPath: 
   And
      [Merge] : ACTORS with CITIES
         [Join] : ACTORS.Birth_City_ID = CITIES.City_ID  (1227 records found in 13 ms)
      --> 1227 records found in 13 ms
   --> 1227 records found in 13 ms

Übergeben Sie in der Funktion Get Last Query Path die Konstante Description in XML format, enthält $vResultPath die Beschreibung der Suche in XML-Format:

<

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>

Referenz

Get Last Query Path, Get Last Query Plan.


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next