version 11.1
DECRIRE EXECUTION RECHERCHE (statut)
Paramètre | Type | Description | |
statut | Booléen | Vrai=Enregistrer la description des requêtes, | |
Faux=Stopper l'enregistrement |
Description
La commande DECRIRE EXECUTION RECHERCHE permet d'activer ou d'inactiver le mode d'analyse de l'exécution des recherches pour le process courant. La commande tient compte indifféremment des recherches effectuées via le langage 4D ou des requêtes SQL.
L'appel de la commande avec le paramètre statut à Vrai active le mode d'analyse des recherches. Dans ce mode, le moteur de 4D enregistrera en interne deux séries d'informations spécifiques lors de chaque requête effectuée par la suite sur les données :
la description détaillée de la recherche juste avant son exécution, c'est-à-dire la recherche prévue (le plan de recherche),
la description détaillée de la recherche telle qu'elle a réellement été exécutée (le chemin de recherche).
Les informations enregistrées incluent le type de recherche (indexée, séquentielle), le nombre d'enregistrements trouvés et le temps nécessaire à l'exécution de chaque critère de recherche. Vous pouvez ensuite lire ces informations à l'aide des commandes Lire dernier plan recherche et Lire dernier chemin recherche.
En général, la description du plan d'une recherche et celle de son chemin sont identiques, mais elles peuvent toutefois différer car 4D peut mettre en oeuvre des optimisations dynamiques au cours de l'exécution de la recherche, dans le but d'améliorer les performances. Par exemple, une recherche indexée peut être convertie dynamiquement en recherche séquentielle si le moteur de 4D estime qu'elle sera plus rapide c'est le cas notamment lorsque le nombre d'enregistrements parmi lesquels effectuer la recherche est faible.
Passez Faux dans le paramètre statut lorsque vous n'avez plus besoin d'analyser les recherches. Le mode d'analyse de l'exécution des recherches peut ralentir l'application.
Exemple
L'exemple suivant illustre le type d'information obtenue via ces commandes en cas de requête SQL :
C_TEXTE($vResultPlan;$vResultPath) TABLEAU TEXTE(aTitles;0) TABLEAU TEXTE(aDirectors;0) DECRIRE EXECUTION RECHERCHE(Vrai) `mode analyse Debut SQL SELECT ACTORS.FirstName, CITIES.City_Name FROM ACTORS, CITIES WHERE ACTORS.Birth_City_ID=CITIES.City_ID ORDER BY 1 INTO :aTitles, :aDirectors; Fin SQL $vResultPlan:=Lire dernier plan recherche(Description format Texte) $vResultPath:=Lire dernier chemin recherche(Description format Texte) DECRIRE EXECUTION RECHERCHE(Faux) `Fin du mode analyse
A l'issue de l'exécution de ce code, $vResultPlan et $vResultPath contiennent les descriptions des recherches effectuées, par exemple :
$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 14 ms
Si la constante Description format XML est passée à la commande Lire dernier chemin recherche, $vResultPath contient la description de la recherche exprimée en 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>
Référence
Lire dernier chemin recherche, Lire dernier plan recherche.