Modes d’exécution du moteur CMDB Query Builder

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 6 minutes de lecture
  • Le moteur CMDB Query Builder (Générateur de requêtes CMDB) utilise deux modes d’exécution pour exécuter les requêtes. Par défaut, le système est configuré pour utiliser le mode amélioré V2 conçu pour l’optimisation des performances. La version V2 est prise en charge pour la plupart des requêtes et permet d’exécuter des requêtes complexes beaucoup plus rapidement et de traiter des ensembles de résultats plus volumineux sans dégradation des performances.

    Le générateur de requêtes CMDB peut être défini avec les modes d’exécution de moteur suivants pour l’exécution des requêtes :
    V2

    Un moteur d’exécution de requêtes amélioré conçu pour améliorer les performances et l’évolutivité. Il s’agit du moteur d’exécution par défaut. En mode V2, par rapport au mode V1, le moteur CMDB Query Builder (Générateur de requêtes CMDB) est capable d’exécuter des requêtes complexes beaucoup plus rapidement et de traiter des ensembles de résultats plus volumineux sans dégradation des performances.

    Toutefois, certaines structures de requête ne sont pas prises en charge pour le mode V2, auquel cas ces requêtes s’exécutent automatiquement à l’aide du mode hérité (V1).

    V1
    Moteur d’exécution hérité utilisé lorsque le système est explicitement configuré pour utiliser V1. Ce mode est également utilisé, même si le système est configuré pour s’exécuter en mode V2, pour exécuter des requêtes avec une structure qui n’est pas prise en charge pour le mode V2.

    Considérations pour l’opérateur « OU »

    La définition du mode d’exécution pour les requêtes qui contiennent des opérateurs « OR », telles que l’exemple de requête ci-dessous, nécessite des considérations particulières :

    Requête avec structure « OU »

    L’exécution d’une requête avec des structures « OR » peut être beaucoup plus rapide en mode V2 qu’en V1, mais les résultats sont présentés différemment entre les modes d’exécution V1 et V2. La différence réside dans le fait que les nœuds d’opérateur « OR » génèrent des ensembles de résultats fusionnés et interproduits. En mode V2, les résultats connexes sont fusionnés en un seul élément de résultat. Dans V1, les mêmes résultats sont représentés par des éléments de résultat distincts.

    Figure 1. Résultats pour une requête avec une structure « OU », en mode d’exécution V1
    Résultats « OU » en mode d’exécution V1
    Figure 2. Résultats pour une requête avec une structure « OU », en mode d’exécution V2
    Résultats « OU » en mode d’exécution V2

    Dans certaines situations, il peut être important d’exécuter une requête avec une structure « OU », en utilisant le mode moteur V1 pour conserver le format hérité des résultats dans le support des rapports organisationnels existants. Vous pouvez utiliser la propriété système comme décrit ci-dessous pour contrôler le glide.cmdb.query.or_execution_mode mode d’exécution des requêtes avec des structures « OU ».

    Paramètres

    Le système utilise les paramètres de mode d’exécution suivants pour déterminer le mode d’exécution à utiliser pour exécuter une requête :
    • Paramètre au niveau de la requête :

      L’attribut Query Execution Mode de la table Requêtes enregistrées [qb_saved_query] définit le mode de moteur pour la requête respective. Pour plus d’informations sur ce paramètre, reportez-vous à la section Définir le mode d’exécution pour l’exécution d’une requête.

      Le paramètre au niveau de la requête a priorité sur les paramètres de propriété système.

    • Paramètre global :

      La propriété glide.cmdb.query.execution_mode système définit le mode par défaut à l’échelle du système à utiliser lorsque le mode d’une requête n’est pas défini au niveau de la requête.

    • Paramètre global :

      La propriété glide.cmdb.query.or_execution_mode système définit le mode de moteur d’exécution par défaut à l’échelle du système pour les requêtes qui contiennent au moins une condition logique OU. Étant donné que les résultats d’une requête avec une structure « OU » sont formatés différemment entre les modes V1 et V2, ce paramètre de propriété affecte également le format utilisé pour les résultats.

      Cette propriété a priorité sur la glide.cmdb.query.execution_mode propriété système.

    Pour plus d’informations sur les propriétés système du mode moteur, reportez-vous à la section Paramètres de propriété pour le générateur de requêtes CMDB.

    Structures de requêtes non prises en charge pour le mode V2

    Les structures de requête suivantes ne sont pas prises en charge dans V2 et sont donc exécutées à l’aide du mode V1 même si le système est configuré pour utiliser le mode V2 :
    • Requêtes avec des filtres contenant des conditions de liste connexe.
    • Aucune relation combinée avec un filtre contenant des conditions d’élément de configuration : nœud pour lequel aucune relation n’est configurée et dont le filtre cible comporte des conditions d’élément de configuration.

      Par exemple : serveur NON connecté au routeur WHERE Router.status = Actif.

    • Requête de mappage des services avec des bordures connexes (flux applicatif, flux non applicatif, appartient à, n’appartient pas à). Requête de mappage des services avec les propriétés de requête de service définies sur Rechercher les CI associés ou Rechercher les CI non liés, ou une requête combinée dans laquelle une propriété de connexion de requête de service est définie sur N’appartient pas au service.

    Flux de décision

    Le système utilise un flux de décision qui vérifie tous les paramètres pertinents et la structure de la requête pour déterminer le mode d’exécution à utiliser pour exécuter une requête. Tout d’abord, le système vérifie les paramètres au niveau de la requête et du système. Ensuite, si les paramètres sont configurés pour l’utilisation de V2 pour exécuter une requête, le système vérifie la structure de la requête pour déterminer si le mode d’exécution V2 prend en charge la structure de la requête. Si la requête contient une structure qui n’est pas prise en charge dans V2, l’exécution revient automatiquement à l’utilisation du mode V1, même si les paramètres sont configurés pour utiliser V2. Ce mécanisme de secours automatique prend en charge l’exécution réussie de toutes les requêtes tout en maximisant les avantages en termes de performances dans la mesure du possible.

    Si une structure de requête est prise en charge par le mode d’exécution V2, si une structure de requête est prise en charge par le mode V2, la requête s’exécute en mode V2.

    Le flux de décision suivant examine les paramètres et les structures de requête pour déterminer si une requête s’exécute en mode d’exécution du moteur V1 ou V2 :
    1. Vérifiez le paramètre de l’attribut Query Execution Mode dans l’enregistrement de requête de la table Requêtes enregistrées [qb_saved_query] :
      • Si « V1 » : utiliser V1
      • Si '' : Passez à l’étapeV2 #4 — Effectuer la vérification de la prise en charge de la V2
      • Si « Aucun » : vérifiez les propriétés système comme décrit à l’étape suivante
    2. Vérifiez la propriété glide.cmdb.query.execution_modesystème :
      • Si non défini : Utiliser V2 Vérification de la prise en charge en attente
      • Si « V1 » : utiliser V1
      • Si « V2 » :
        • En l’absence de conditions OU logiques : Passez à l’étape #4 — Effectuer une vérification de la prise en charge de V2
        • Si une ou plusieurs conditions OU logiques : Effectuez une vérification spécifique à « OU » comme décrit à l’étape suivante
    3. Vérifier la valeur de glide.cmdb.query.or_execution_mode:
      • Si « V1 » : utiliser V1
      • Si « V2 » : Passez à l’étape #4 — Effectuer la vérification de la prise en charge de la V2
      • Si vide : utilisez V2
    4. Effectuer une vérification de la prise en charge V2 :
      • Si la requête contient une structure qui n’est pas prise en charge dans V2 : utilisez V1
      • Si la structure de la requête est prise en charge dans V2 : Utiliser V2

    L’attribut Query Execution Mode dans la table État de la requête [qb_query_status] affiche le mode d’exécution affecté à chaque requête.