Tous les produits
Search
Centre de documentation

Hologres:Query Queue

Dernière mise à jour :Aug 12, 2026

À partir de la version V3.0, Hologres prend en charge la fonctionnalité Query Queue pour le traitement ordonné des requêtes, l'équilibrage de charge et la gestion des ressources. Elle garantit la stabilité du système et améliore l'efficacité des réponses, particulièrement dans les scénarios à forte concurrence.

Présentation

Par défaut, les instances Hologres traitent les requêtes sans contrôle de concurrence. Le coordinateur du moteur alloue les ressources au fur et à mesure de l'arrivée des requêtes. Avec la fonctionnalité Query Queue, les requêtes SQL sont comparées aux règles de classificateur configurées et dirigées vers des files d'attente spécifiques. Vous pouvez définir une concurrence maximale pour chaque file. Lorsqu'une file atteint sa limite, les nouvelles requêtes patientent, ce qui assure une allocation contrôlée des ressources et évite la surcharge.

image

Remarques importantes

  • Pour les instances à usage général, les configurations telles que les files d'attente de requêtes et les optimiseurs s'appliquent au niveau de l'instance. Pour les instances d'entrepôt virtuel, ces configurations s'appliquent au niveau de l'entrepôt virtuel. Si une instance contient plusieurs bases de données, les paramètres de file d'attente et d'optimiseur concernent toutes les bases de données.

  • Cette fonctionnalité est disponible uniquement pour les instances à usage général et les instances d'entrepôt virtuel exécutant Hologres V3.0 ou version ultérieure.

    Remarque

    Si votre instance est en version V2.2 ou antérieure, mettez à niveau l'instance ou contactez le support en ligne pour obtenir de l'aide.

  • Depuis Hologres V3.0.10, vous pouvez diriger toutes les requêtes SQL d'une file d'attente vers des ressources Serverless Computing. Cette file n'est alors plus soumise aux limites de concurrence ni aux paramètres de mise en attente.

  • Chaque instance à usage général et chaque entrepôt virtuel dispose d'une file d'attente par défaut nommée default_queue, qui n'est limitée ni en concurrence ni en taille maximale.

    • Vous ne pouvez pas créer de classificateurs pour default_queue. Vous pouvez uniquement configurer ses propriétés.

    • default_queue gère toutes les requêtes ne correspondant à aucune autre file d'attente.

  • Chaque instance à usage général et chaque entrepôt virtuel accepte jusqu'à 10 files d'attente, y compris default_queue. Chaque file peut contenir jusqu'à 10 classificateurs.

  • Vous ne pouvez pas activer Query Queue indépendamment sur une instance secondaire en lecture seule. Toutefois, les règles de file d'attente de l'instance principale s'appliquent également à l'instance secondaire.

  • Seules les requêtes dont le engine_type est HQE, PQE, SQE ou HiveQE sont prises en compte par les files d'attente. Les types de requêtes pris en charge incluent SELECT, INSERT, UPDATE, DELETE, ainsi que INSERT via COPY et CTAS.

  • Les requêtes accélérées par Fixed Plan ne passent pas par la file d'attente. Pour plus d'informations, consultez Utiliser Fixed Plan pour accélérer l'exécution SQL.

  • Un classificateur appartient à une seule file d'attente, mais une file peut comporter plusieurs classificateurs.

Procédure

Créer une file d'attente de requêtes

  • Syntaxe

    • Instance à usage général

      CALL hg_create_query_queue (query_queue_name, max_concurrency, max_queue_size);
    • Instance d'entrepôt virtuel

      CALL hg_create_query_queue (warehouse_name, query_queue_name, max_concurrency, max_queue_size);
  • Description des paramètres

    • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. En l'absence de ce paramètre, la file d'attente est créée par défaut dans l'entrepôt virtuel de la connexion actuelle.

      Remarque

      Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

    • query_queue_name : Obligatoire. Nom de la file d'attente. Ce nom doit être unique au sein de l'instance ou de l'entrepôt virtuel actuel.

    • max_concurrency : Facultatif. Concurrence maximale. La valeur par défaut est -1, ce qui signifie aucune limite. La valeur doit se situer dans l'intervalle [-1, 2147483647).

    • max_queue_size : Facultatif. Taille maximale de la file. Ce paramètre définit le nombre maximal d'instructions SQL pouvant être mises en attente. La valeur par défaut est -1, indiquant une taille illimitée. La valeur doit se situer dans l'intervalle [-1, 2147483647).

    Remarque

    Lors de la création d'une file d'attente, vous pouvez configurer les propriétés ci-dessus. Pour définir d'autres propriétés, consultez Définir les propriétés d'une file d'attente.

  • Exemples

    • Instance à usage général

      -- Create a query queue named insert_queue and set the maximum concurrency to 10. The concurrency parameter does not require single quotation marks.
      CALL hg_create_query_queue ('insert_queue', 10);
    • Instance d'entrepôt virtuel

      -- In the init_warehouse virtual warehouse, create a query queue named insert_queue and set the maximum concurrency to 10.
      CALL hg_create_query_queue ('init_warehouse', 'insert_queue', 10);

Créer un classificateur

  • Syntaxe

    • Instance à usage général

      CALL hg_create_classifier (query_queue_name, classifier_name, priority);
    • Instance d'entrepôt virtuel

      CALL hg_create_classifier (warehouse_name, query_queue_name, classifier_name, priority);
  • Description des paramètres

    • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

      Remarque

      Ce paramètre s'applique uniquement aux instances d'entrepôt virtuel.

    • query_queue_name : Obligatoire. Nom de la file d'attente pour laquelle créer un classificateur.

    • classifier_name : Obligatoire. Nom du classificateur. Ce nom doit être unique au sein de l'instance ou de l'entrepôt virtuel actuel.

    • priority : Facultatif. Priorité de correspondance du classificateur. Une valeur élevée indique une priorité supérieure. La valeur par défaut est 50. La valeur doit se situer dans l'intervalle [1, 100]. Si ce paramètre n'est pas spécifié lors de la création, vous pourrez le configurer ultérieurement. Pour plus d'informations, consultez Définir les propriétés d'un classificateur.

      Remarque
      • Les classificateurs avec une priorité plus élevée sont évalués en premier.

      • Si plusieurs classificateurs partagent la même priorité, l'ordre lexicographique des noms de file d'attente et de classificateur détermine la correspondance. Le classificateur dont le nom apparaît en premier selon cet ordre est prioritaire. Par exemple, queue_a(classifier_1) est prioritaire sur queue_b(classifier_1).

  • Exemples

    • Instance à usage général

      -- In the insert_queue query queue, create a classifier named classifier_insert with a matching priority of 20. Note that the priority parameter does not require single quotation marks.
      CALL hg_create_classifier ('insert_queue', 'classifier_insert', 20);
    • Instance d'entrepôt virtuel

      -- In the insert_queue query queue of the init_warehouse virtual warehouse, create a classifier named classifier_insert with a matching priority of 20.
      CALL hg_create_classifier ('init_warehouse', 'insert_queue', 'classifier_insert', 20);

Configurer les conditions d'un classificateur

La configuration des conditions de classificateur permet de diriger des instructions SQL spécifiques vers des files d'attente particulières. Si une requête satisfait la condition d'un classificateur, elle est placée dans la file d'attente associée.

  • Syntaxe

    • Instance à usage général

      CALL hg_set_classifier_rule_condition_value (query_queue_name, classifier_name, condition_name, condition_value);
    • Instance d'entrepôt virtuel

      CALL hg_set_classifier_rule_condition_value (warehouse_name, query_queue_name, classifier_name, condition_name, condition_value);
  • Description des paramètres

    Nom

    Description

    warehouse_name

    Facultatif. Nom de l'entrepôt virtuel. Sans configuration explicite, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

    Remarque

    Ce paramètre est obligatoire uniquement pour les instances d'entrepôt virtuel.

    query_queue_name

    Obligatoire. Nom de la file d'attente.

    classifier_name

    Obligatoire. Nom du classificateur auquel ajouter une règle de correspondance.

    condition_name et condition_value

    Obligatoire. Conditions prises en charge :

    • user_name : UID du compte actuel.

    • command_tag : Type de requête. Valeurs valides : INSERT, SELECT, UPDATE et DELETE.

      Pour optimiser l'exécution des opérations COPY, Hologres les implémente via INSERT. Ainsi, limiter la concurrence des opérations INSERT affecte également la concurrence en écriture des opérations COPY.

    • db_name : Nom de la base de données.

    • engine_type : Moteur utilisé par la requête. Valeurs valides : HQE, PQE, SQE et HiveQE. L'utilisation de cette propriété est recommandée à partir de Hologres V3.1.18.

    • digest : Empreinte SQL. Pour plus d'informations sur les empreintes SQL, consultez Empreintes SQL.

    • application_name : Application ayant initié la requête. Cette propriété est prise en charge uniquement depuis Hologres V3.0.9.

    • storage_mode : Mode de stockage. Valeurs valides : hot et cold. L'utilisation de cette propriété est recommandée à partir de Hologres V3.1.18 ou V3.1.8.

    • write_table : Table cible de la requête. Format : <db_name>.<schema_name>.<table_name>. Prise en charge uniquement depuis Hologres V3.1.

    • read_table: Table source de la requête. Prise en charge uniquement depuis Hologres V3.1.

    Les classificateurs acceptent plusieurs conditions, chacune pouvant recevoir un ensemble de valeurs. Depuis Hologres V3.1.18, des règles de classification avancées sont disponibles. Notez les points suivants :

    • Relation entre les conditions :

      • Logique ET : Lorsqu'un classificateur comporte plusieurs conditions (par exemple user_name ET command_tag), la requête doit toutes les satisfaire pour intégrer la file correspondante.

      • Logique OU : Pour obtenir une relation « OU » (correspondance si l'un des critères est rempli), créez plusieurs classificateurs distincts, chacun avec sa propre condition.

    • Correspondance de plusieurs valeurs au sein d'une condition

      • Correspondance par sous-ensemble (⊆) : Concerne les conditions comme user_name, command_tag, db_name, digest, application_name. Les valeurs de la requête doivent former un sous-ensemble des valeurs acceptables.

      • Correspondance exacte (==) : Concerne storage_mode. Les valeurs de la requête doivent correspondre exactement aux valeurs acceptables.

      • Correspondance par intersection (∩) : Concerne engine_type, write_table, read_table. La requête doit partager au moins une valeur avec les valeurs acceptables.

    Remarque
    • Configurez les conditions de filtrage une par une. Si la valeur de la condition respecte la casse, placez-la entre guillemets doubles (« "" »).

    • Si une condition accepte un ensemble de valeurs, définissez-la plusieurs fois. Par exemple, pour qu'un classificateur corresponde aux requêtes où command_tag est soit SELECT soit INSERT, exécutez deux instructions SQL distinctes.

  • Exemples

    Les exemples suivants utilisent une instance d'entrepôt virtuel. Pour une instance à usage général, omettez le premier paramètre. Créez une file d'attente nommée test_queue pour l'entrepôt virtuel par défaut init_warehouse :

    CALL hg_create_query_queue ('init_warehouse', 'test_queue');
    • Exemple 1 : Diriger une requête vers la file test_queue si elle est soumise par l'utilisateur p4_123 ou p4_456, ou si son empreinte SQL est xxx ou yyy.

      -- Because an OR relationship is required between the user and SQL fingerprint properties, you must configure two classifiers.
      
      -- Create a classifier named classifier_user and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_user');
      -- Set matching rules based on the user property. Queries from user "p4_123" or "p4_456" will hit this classifier.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'user_name', 'p4_123');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'user_name', 'p4_456');
      
      -- Create a classifier named classifier_digest and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_digest');
      -- Set matching rules based on the SQL fingerprint property. Queries with SQL fingerprint "xxx" or "yyy" will hit this classifier.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'digest', 'xxx');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_user', 'digest', 'yyy');
    • Exemple 2 : Diriger une requête vers la file test_queue si elle provient de l'application xx_bi et accède simultanément au stockage froid et chaud.

      -- Because an AND relationship is required between the application and storage class properties, define both properties within the same classifier.
      
      -- Create a classifier named classifier_3 and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_3');
      -- Set a condition based on the application property.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'application_name', 'xx_bi');
      -- Set a condition based on the storage class. Set both "hot" and "cold" rules. A query must access both cold and hot storage to match.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'storage_mode', 'hot');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'storage_mode', 'cold');
    • Exemple 3 : Diriger toutes les requêtes accédant aux données en stockage froid vers la file test_queue.

      -- Because the storage class value requires an exact match, requests that "access any cold storage data" must be split into the following two classifiers. The request only needs to match one of them.
      
      -- Create a classifier named classifier_cold_1 and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_cold_1');
      -- Queries where storage_mode is only 'cold' enter this queue.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_cold_1', 'storage_mode', 'cold');
      
      -- Create a classifier named classifier_cold_2 and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_cold_2');
      -- Queries where storage_mode includes both 'hot' and 'cold' enter this queue.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_cold_2', 'storage_mode', 'hot');
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_cold_2', 'storage_mode', 'cold');
    • Exemple 4 : Diriger vers la file test_queue toutes les requêtes lisant la table a et écrivant dans la table b.

      -- Because an AND relationship is required between the read table and write table properties, define both properties within the same classifier.
      
      -- Create a classifier named classifier_table and attach it to the test_queue query queue.
      CALL hg_create_classifier ('init_warehouse', 'test_queue', 'classifier_table');
      -- Set a matching rule based on the read table. A request matches this rule if it reads data from table a, regardless of whether it reads from other tables.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'read_table', 'db_name.schema_name.a');
      -- Set a matching rule based on the write table. A request that writes to table b matches this rule.
      CALL hg_set_classifier_rule_condition_value ('init_warehouse','test_queue', 'classifier_3', 'write_table', 'db_name.schema_name.b');
  • Fonctionnalités avancées

    Contrôler les requêtes volumineuses

    Afin de limiter l'impact des requêtes lourdes sur une instance, utilisez les files d'attente pour gérer la durée d'exécution et les erreurs de mémoire insuffisante (OOM). Pour les requêtes dépassant la durée d'exécution spécifiée ou le seuil OOM, arrêtez la requête ou relancez-la via des ressources Serverless Computing.

    Remarque
    • Hologres V3.0 permet de relancer uniquement les requêtes SELECT. La version V4.1 autorise la relance des commandes natives INSERT OVERWRITE, à condition que le paramètre GUC hg_enable_query_queue_rerun_insert_overwrite_via_serverless soit activé. Lors d'une relance utilisant FETCH pour récupérer des données, la requête n'est réexécutée selon les conditions du classificateur que si FETCH ne retourne aucun résultat, garantissant ainsi l'exactitude des résultats.

    • L'exécution réelle d'une requête comprend trois phases : optimization_cost (génération du plan d'exécution), start_query_cost (démarrage de la requête) et get_next_cost (exécution proprement dite). Pour plus d'informations, consultez Obtenir et analyser les journaux de requêtes lentes. Query Queue ne considère que la durée de la phase get_next_cost, excluant le temps d'attente des ressources ou des verrous.

    • Contrôle de la durée d'exécution

      Le paramètre big_query_execution_time_threshold_sec permet de définir la durée d'exécution maximale en secondes (s). La valeur par défaut est -1 (aucune limite). La valeur doit se situer dans l'intervalle [-1, 2147483647). Voici comment contrôler les requêtes selon leur durée :

      • Scénario 1 : Terminer les requêtes dépassant la durée d'exécution

        Les requêtes entrant dans la file select_queue s'exécutent sur les ressources locales. Si l'exécution dépasse 10 secondes, la requête est automatiquement interrompue.

        CALL hg_set_query_queue_property ('select_queue', 'big_query_execution_time_threshold_sec', '10');
      • Scénario 2 : Relancer les requêtes dépassant la durée d'exécution

        Les requêtes de la file select_queue s'exécutent localement. Au-delà de 10 secondes, la requête est arrêtée sur les ressources de l'instance puis relancée via Serverless Computing.

        CALL hg_set_query_queue_property ('select_queue', 'big_query_execution_time_threshold_sec', '10');
        CALL hg_set_query_queue_property ('select_queue', 'enable_rerun_as_big_query_when_exceeded_execution_time_threshold', 'true');
        CALL hg_set_query_queue_property ('select_queue', 'rerun_big_query_on_computing_resource', 'serverless');
        Remarque
        • enable_rerun_as_big_query_when_exceeded_execution_time_threshold : Indique si une requête SQL terminée pour dépassement de durée doit être relancée sur d'autres ressources. Valeur par défaut : false.

        • rerun_big_query_on_computing_resource : Spécifie la ressource Serverless Computing à utiliser pour la relance.

    • Relance des requêtes volumineuses provoquant des erreurs OOM

      Les requêtes de la file select_queue s'exécutent localement. Si une requête provoque une erreur OOM en occupant plus de 10 Go de mémoire sur un seul worker, elle est relancée via Serverless Computing. Le paramètre big_query_mem_threshold_when_oom_gb définit le seuil de mémoire pour les requêtes OOM. Valeur par défaut : -1 (aucune limite). Intervalle valide : [-1, 64). Exemple :

      CALL hg_set_query_queue_property ('select_queue', 'big_query_mem_threshold_when_oom_gb', '10');
      CALL hg_set_query_queue_property ('select_queue', 'enable_rerun_as_big_query_when_oom_exceeded_mem_threshold', 'true');
      CALL hg_set_query_queue_property ('select_queue', 'rerun_big_query_on_computing_resource', 'serverless');
    • Gérer les files d'attente de requêtes

      Supprimer une file d'attente de requêtes

      • Syntaxe

        • Instance à usage général

          CALL hg_drop_query_queue (query_queue_name);
        • Instance d'entrepôt virtuel

          CALL hg_drop_query_queue (warehouse_name, query_queue_name);
      • Description des paramètres

        • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

          Remarque

          Ce paramètre s'applique uniquement aux instances d'entrepôt virtuel.

        • query_queue_name : Obligatoire. Nom de la file d'attente.

      • Exemples

      • Instance à usage général

        -- Delete the insert_queue query queue.
        CALL hg_drop_query_queue ('insert_queue');
      • Instance d'entrepôt virtuel

        -- In the init_warehouse virtual warehouse, delete the insert_queue query queue.
        CALL hg_drop_query_queue ('init_warehouse', 'insert_queue');
      • Supprimer des propriétés de file d'attente

        • Syntaxe

          • Instance à usage général

            CALL hg_remove_query_queue_property (query_queue_name, property_key);
          • Instance d'entrepôt virtuel

            CALL hg_remove_query_queue_property (warehouse_name, query_queue_name, property_key);
        • Description des paramètres

          • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

            Remarque

            Ce paramètre s'applique uniquement aux instances d'entrepôt virtuel.

          • query_queue_name : Obligatoire. Nom de la file d'attente.

          • property_key : Obligatoire. Nom de la propriété. Propriétés prises en charge : max_concurrency, max_queue_size et queue_timeout_ms. Pour plus d'informations, consultez Définir les propriétés d'une file d'attente.

        • Exemples

          • Instance à usage général

            -- Delete the maximum concurrency property of the insert_queue query queue.
            CALL hg_remove_query_queue_property('insert_queue', 'max_concurrency');
            
            -- Delete the maximum queue size property of the insert_queue query queue.
            CALL hg_remove_query_queue_property('insert_queue', 'max_queue_size');
            
            -- Delete the maximum queue time property of the insert_queue query queue.
            CALL hg_remove_query_queue_property('insert_queue', 'queue_timeout_ms');
          • Instance d'entrepôt virtuel

            -- In the init_warehouse virtual warehouse, delete the maximum concurrency property of the insert_queue query queue.
            CALL hg_remove_query_queue_property('init_warehouse', 'insert_queue', 'max_concurrency');
            
            -- In the init_warehouse virtual warehouse, delete the maximum queue size setting of the insert_queue query queue.
            CALL hg_remove_query_queue_property('init_warehouse', 'insert_queue', 'max_queue_size');
            
            -- In the init_warehouse virtual warehouse, delete the maximum queue time property of the insert_queue query queue.
            CALL hg_remove_query_queue_property('init_warehouse', 'insert_queue', 'queue_timeout_ms');
        • Consulter les métadonnées des files d'attente

          Les métadonnées des files d'attente sont stockées dans la table système hologres.hg_query_queues. Les principaux champs sont décrits ci-dessous :

          Nom du champ

          Type de champ

          Description

          warehouse_id

          INT

          ID de l'entrepôt virtuel.

          Remarque

          Pour les instances General-purpose, la valeur du champ warehouse_id est 0.

          warehouse_name

          TEXT

          Nom de l'entrepôt virtuel.

          Remarque

          Pour les instances General-purpose, le champ warehouse_name est vide.

          query_queue_name

          TEXT

          Nom de la file d'attente.

          property_key

          TEXT

          Nom de la propriété.

          property_value

          TEXT

          Valeur de la propriété.

          Définir les propriétés d'une file d'attente

          • Syntaxe

            • Instance à usage général

              CALL hg_set_query_queue_property (query_queue_name, property_key, property_value);
            • Instance d'entrepôt virtuel

              CALL hg_set_query_queue_property (warehouse_name, query_queue_name, property_key, property_value);
          • Description des paramètres

            • warehouse_name : Facultatif. Nom de l'entrepôt virtuel dont vous souhaitez configurer les propriétés de file d'attente. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

              Remarque

              Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

            • query_queue_name : Obligatoire. Nom de la file d'attente à configurer.

            • property_key et property_value : Obligatoires. Propriétés prises en charge décrites ci-après :

              • max_concurrency : Concurrence maximale. Valeur par défaut : -1 (aucune limite). Intervalle valide : [-1, 2147483647).

              • max_queue_size : Taille maximale de la file. Définit le nombre maximal d'instructions SQL en attente. Valeur par défaut : -1 (illimité). Intervalle valide : [-1, 2147483647).

              • queue_timeout_ms : Durée maximale d'attente en millisecondes (ms). Au-delà de cette durée, la requête est automatiquement arrêtée. Valeur par défaut : -1 (aucune limite). Intervalle valide : [-1, 2147483647).

          • Exemples

            • Instance à usage général

              -- Set the maximum concurrency of the insert_queue query queue to 15.
              CALL hg_set_query_queue_property('insert_queue', 'max_concurrency', '15');
              
              -- Set the maximum queue size of the insert_queue query queue to 15.
              CALL hg_set_query_queue_property('insert_queue', 'max_queue_size', '15');
              
              -- Set the maximum queue time of the insert_queue query queue to 3000 ms.
              CALL hg_set_query_queue_property('insert_queue', 'queue_timeout_ms', '3000');
            • Instance d'entrepôt virtuel

              -- In the init_warehouse virtual warehouse, set the maximum concurrency of the insert_queue query queue to 15.
              CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'max_concurrency', '15');
              
              -- In the init_warehouse virtual warehouse, set the maximum queue size of the insert_queue query queue to 15.
              CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'max_queue_size', '15');
              
              -- In the init_warehouse virtual warehouse, set the maximum queue time of the insert_queue query queue to 3000 ms.
              CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'queue_timeout_ms', '3000');
          • Effacer les requêtes en attente

            • Syntaxe

              • Instance à usage général

                CALL hg_clear_query_queue (query_queue_name);
              • Instance d'entrepôt virtuel

                CALL hg_clear_query_queue (warehouse_name, query_queue_name);
            • Description des paramètres

              • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

                Remarque

                Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

              • query_queue_name : Obligatoire. Nom de la file d'attente.

            • Exemples

              • Instance à usage général

                -- Clear all queued requests in the select_queue query queue.
                CALL hg_clear_query_queue ('select_queue');
              • Instance d'entrepôt virtuel

                -- In the init_warehouse virtual warehouse, clear all queued requests in the select_queue query queue.
                CALL hg_clear_query_queue ('init_warehouse', 'select_queue');
            • Gestion des classificateurs

              Supprimer un classificateur

              • Syntaxe

                • Instance à usage général

                  CALL hg_drop_classifier (query_queue_name, classifier_name);
                • Instance d'entrepôt virtuel

                  CALL hg_drop_classifier (warehouse_name, query_queue_name, classifier_name);
              • Description des paramètres

                • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

                  Remarque

                  Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

                • query_queue_name : Obligatoire. Nom de la file d'attente pour laquelle supprimer un classificateur.

                • classifier_name : Obligatoire. Nom du classificateur.

              • Exemples

                • Instance à usage général

                  -- In the insert_queue query queue, delete the classifier_insert classifier.
                  CALL hg_drop_classifier ('insert_queue', 'classifier_insert');
                • Instance d'entrepôt virtuel

                  -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the classifier_insert classifier.
                  CALL hg_drop_classifier ('init_warehouse', 'insert_queue', 'classifier_insert');
              • Supprimer des propriétés de classificateur

                • Syntaxe

                  • Instance à usage général

                    CALL hg_remove_classifier_property (query_queue_name, classifier_name, property_key);
                  • Instance d'entrepôt virtuel

                    CALL hg_remove_classifier_property (warehouse_name, query_queue_name, classifier_name, property_key);
                • Description des paramètres

                  • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

                    Remarque

                    Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

                  • query_queue_name : Obligatoire. Nom de la file d'attente.

                  • classifier_name : Obligatoire. Nom du classificateur.

                  • property_key : Obligatoire. La propriété prise en charge est priority. Pour plus d'informations sur les propriétés des classificateurs, consultez Définir les propriétés d'un classificateur.

                • Exemples

                  • Instance à usage général

                    -- In the insert_queue query queue, delete the priority property of the classifier_insert classifier.
                    CALL hg_remove_classifier_property ('insert_queue', 'classifier_insert', 'priority');
                  • Instance d'entrepôt virtuel

                    -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the priority property of the classifier_insert classifier.
                    CALL hg_remove_classifier_property ('init_warehouse', 'insert_queue', 'classifier_insert', 'priority');
                • Définir les propriétés d'un classificateur

                  • Syntaxe

                    • Instance à usage général

                      CALL hg_set_classifier_property (query_queue_name, classifier_name, property_key, property_value);
                    • Instance d'entrepôt virtuel

                      CALL hg_set_classifier_property (warehouse_name, query_queue_name, classifier_name, property_key, property_value);
                  • Description des paramètres

                    • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

                      Remarque

                      Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

                    • query_queue_name : Obligatoire. Nom de la file d'attente.

                    • classifier_name : Obligatoire. Nom du classificateur.

                    • property_key et property_value : Obligatoires. La propriété prise en charge est décrite ci-après :

                      priority : Priorité de correspondance du classificateur. Une valeur élevée indique une priorité supérieure. Valeur par défaut : 50. Intervalle valide : [1, 100].

                      Remarque
                      • Les classificateurs avec une priorité plus élevée sont évalués en premier.

                      • Si plusieurs classificateurs partagent la même priorité, l'ordre lexicographique des noms de file d'attente et de classificateur détermine la correspondance. Le classificateur dont le nom apparaît en premier selon cet ordre est prioritaire. Par exemple, queue_a(classifier_1) est prioritaire sur queue_b(classifier_1).

                  • Exemples

                    • Instance à usage général

                      -- In the insert_queue query queue, set the priority of the classifier_insert classifier to 30.
                      CALL hg_set_classifier_property ('insert_queue', 'classifier_insert', 'priority', '30');
                    • Instance d'entrepôt virtuel

                      -- In the insert_queue query queue of the init_warehouse virtual warehouse, set the priority of the classifier_insert classifier to 30.
                      CALL hg_set_classifier_property ('init_warehouse', 'insert_queue', 'classifier_insert','priority', '30');
                  • Supprimer des conditions de classificateur

                    • Supprimer une condition (condition_name) d'un classificateur

                      • Syntaxe

                        • Instance à usage général

                          CALL hg_remove_classifier_rule_condition_value (query_queue_name, classifier_name, condition_name, condition_value);
                        • Instance d'entrepôt virtuel

                          CALL hg_remove_classifier_rule_condition_value (warehouse_name, query_queue_name, classifier_name, condition_name, condition_value);
                      • Description des paramètres

                        • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

                          Remarque

                          Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

                        • query_queue_name : Obligatoire. Nom de la file d'attente.

                        • classifier_name : Obligatoire. Nom du classificateur.

                        • condition_name et condition_value : Obligatoires. Nom et valeur de la condition à supprimer. Conditions prises en charge : user_name, command_tag, db_name, engine_type, digest et storage_mode. Pour plus d'informations, consultez Configurer les conditions d'un classificateur.

                      • Exemples

                        • Instance à usage général

                          -- In the insert_queue query queue, delete the matching rule where command_tag is INSERT from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'command_tag', 'INSERT');
                          
                          -- In the insert_queue query queue, delete the matching rule where user_name is p4_12345 from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'user_name', 'p4_12345');
                          
                          -- In the insert_queue query queue, delete the matching rule where db_name is prd_db from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'db_name', 'prd_db');
                          
                          -- In the insert_queue query queue, delete the matching rule where engine_type is HQE from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'engine_type', 'HQE');
                          
                          -- In the insert_queue query queue, delete the matching rule where digest is md5edb3161000a003799a5d3f2656b70b4c from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'digest', 'md5edb3161000a003799a5d3f2656b70b4c');
                          
                          -- In the insert_queue query queue, delete the matching rule where storage_mode is hot from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('insert_queue', 'classifier_insert', 'storage_mode', 'hot');
                        • Instance d'entrepôt virtuel

                          -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where command_tag is INSERT from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'command_tag', 'INSERT');
                          
                          -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where user_name is p4_12345 from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'user_name', 'p4_12345');
                          
                          -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where db_name is prd_db from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'db_name', 'prd_db');
                          
                          -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where engine_type is HQE from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'engine_type', 'HQE');
                          
                          -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where digest is md5edb3161000a003799a5d3f2656b70b4c from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'digest', 'md5edb3161000a003799a5d3f2656b70b4c');
                          
                          -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete the matching rule where storage_mode is hot from the classifier_insert classifier.
                          CALL hg_remove_classifier_rule_condition_value ('init_warehouse', 'insert_queue', 'classifier_insert', 'storage_mode', 'hot');
                      • Supprimer toutes les conditions (condition_name) d'un classificateur

                        • Syntaxe

                          • Instance à usage général

                            CALL hg_remove_classifier_rule_condition (query_queue_name, classifier_name, condition_name);
                          • Instance d'entrepôt virtuel

                            CALL hg_remove_classifier_rule_condition (warehouse_name, query_queue_name, classifier_name, condition_name);
                        • Description des paramètres

                          • warehouse_name : Facultatif. Nom de l'entrepôt virtuel. Sans ce paramètre, l'entrepôt virtuel de la connexion actuelle est utilisé par défaut.

                            Remarque

                            Ce paramètre est requis uniquement pour les instances d'entrepôt virtuel.

                          • query_queue_name : Obligatoire. Nom de la file d'attente.

                          • classifier_name : Obligatoire. Nom du classificateur.

                          • condition_name : Obligatoire. Nom de la propriété de condition à supprimer. Propriétés prises en charge : user_name, command_tag, db_name, engine_type, digest et storage_mode. Pour plus d'informations sur les propriétés de condition des règles de classification, consultez Configurer les conditions d'un classificateur.

                        • Exemples

                          • Instance à usage général

                            -- In the insert_queue query queue, delete all matching rules related to command_tag from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'command_tag');
                            
                            -- In the insert_queue query queue, delete all matching rules related to user_name from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'user_name');
                            
                            -- In the insert_queue query queue, delete all matching rules related to db_name from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'db_name');
                            
                            -- In the insert_queue query queue, delete all matching rules related to engine_type from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'engine_type');
                            
                            -- In the insert_queue query queue, delete all matching rules related to digest from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'digest');
                            
                            -- In the insert_queue query queue, delete all matching rules related to storage_mode from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('insert_queue', 'classifier_insert', 'storage_mode');
                          • Instance d'entrepôt virtuel

                            -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to command_tag from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'command_tag');
                            
                            -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to user_name from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'user_name');
                            
                            -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to db_name from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'db_name');
                            
                            -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to engine_type from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'engine_type');
                            
                            -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to digest from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'digest');
                            
                            -- In the insert_queue query queue of the init_warehouse virtual warehouse, delete all matching rules related to storage_mode from the classifier_insert classifier.
                            CALL hg_remove_classifier_rule_condition ('init_warehouse', 'insert_queue', 'classifier_insert', 'storage_mode');
                        • Consulter les métadonnées des classificateurs

                          Les métadonnées des classificateurs sont stockées dans la table système hologres.hg_classifiers. Les principaux champs sont décrits ci-dessous :

                          Champ

                          Type de champ

                          Description

                          warehouse_id

                          INT

                          ID de l'entrepôt virtuel.

                          Remarque

                          Pour les instances à usage général, la valeur du champ warehouse_id est 0.

                          warehouse_name

                          TEXT

                          Nom de l'entrepôt virtuel.

                          Remarque

                          Pour les instances à usage général, le champ warehouse_name est vide.

                          query_queue_name

                          TEXT

                          Nom de la file d'attente.

                          classifier_name

                          TEXT

                          Nom du classificateur.

                          property_key

                          TEXT

                          Nom de la propriété.

                          property_value

                          TEXT

                          Valeur de la propriété.

                          Diriger les requêtes d'une file vers Serverless Computing

                          Depuis Hologres V3.0.10, vous pouvez spécifier que toutes les requêtes d'une file donnée soient exécutées par des ressources Serverless Computing. Une fois configurées, les requêtes de cette file sollicitent les ressources Serverless selon l'ordre d'arrivée et la priorité définie. Elles ne sont plus soumises à la configuration de concurrence ni au mécanisme de mise en attente de la file. Pour plus d'informations, consultez Guide utilisateur Serverless Computing.

                          Remarque

                          Si Serverless Computing n'est pas disponible dans la zone où réside votre instance, les requêtes continuent de s'exécuter sur les ressources locales.

                          • Instance à usage général

                            • Syntaxe

                              -- Set all queries in the target queue to run on Serverless resources.
                              CALL hg_set_query_queue_property('<query_queue_name>', 'computing_resource', 'serverless');
                              
                              -- (Optional) Set the priority for queries in the target queue when using Serverless resources. Supported values are 1-5. The default is 3.
                              CALL hg_set_query_queue_property('<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');
                            • Description des paramètres

                              • query_queue_name : Obligatoire. Nom de la file d'attente.

                              • priority : Priorité. Valeur par défaut : 3. Intervalle valide : [1, 5].

                            • Exemple

                              -- Set all queries in the target queue to run on Serverless resources.
                              CALL hg_set_query_queue_property('insert_queue', 'computing_resource', 'serverless');
                              
                              -- Set the priority to 2 for queries in the target queue when using Serverless resources.
                              CALL hg_set_query_queue_property('insert_queue', 'query_priority_when_using_serverless_computing', '2');
                          • Instance d'entrepôt virtuel

                            • Syntaxe

                              -- Set all queries in the target queue to run on Serverless resources.
                              CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'computing_resource', 'serverless');
                              
                              -- (Optional) Set the priority for queries in the target queue when using Serverless resources. Supported values are 1-5. The default is 3.
                              CALL hg_set_query_queue_property('<warehouse_name>', '<query_queue_name>', 'query_priority_when_using_serverless_computing', '<priority>');
                            • Description des paramètres

                              • warehouse_name : Obligatoire. Nom de l'entrepôt virtuel.

                              • query_queue_name : Obligatoire. Nom de la file d'attente.

                              • priority : Obligatoire. Priorité. Valeur par défaut : 3. Intervalle valide : [1, 5].

                            • Exemple

                              -- Set all queries in the target queue to run on Serverless resources.
                              CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'computing_resource', 'serverless');
                              
                              -- Set the priority to 2 for queries in the target queue when using Serverless resources.
                              CALL hg_set_query_queue_property('init_warehouse', 'insert_queue', 'query_priority_when_using_serverless_computing', '2');

                            Scénarios courants

                            Identifier la file d'attente d'une requête SQL

                            Exécutez EXPLAIN pour identifier la file d'attente utilisée par une instruction SQL spécifique. Le champ Query Queue indique la file correspondante. Exemple :

                            -- Create a query queue with a concurrency of 10 and a maximum queue size of 20.
                            CALL hg_create_query_queue ('select_queue', 10, 20);
                            -- Create a classifier and set the command_tag property.
                            CALL hg_create_classifier ('select_queue', 'classifier_1');
                            CALL hg_set_classifier_rule_condition_value ('select_queue', 'classifier_1', 'command_tag', 'select');
                            
                            -- Use Explain Analyze to view the classifier and query queue matched by the query.
                            EXPLAIN ANALYZE SELECT * FROM hg_stat_activity;

                            Le résultat suivant est retourné.

                            QUERY PLAN
                            Gather  (cost=0.00..14.96 rows=1000 width=408)
                            [4:1 id=100003 dop=1 time=16/16/16ms rows=142(142/142/142) mem=43/43/43KB open=0/0/0ms get_next=16/16/16ms]
                              ->  Forward  (cost=0.00..12.19 rows=1000 width=408)
                                  [0:4 id=100002 dop=4 time=16/8/5ms rows=142(39/35/33) mem=6/6/6KB open=16/8/5ms get_next=0/0/0ms scan_rows=142(39/35/33)]
                                    ->  ExecuteExternalSQL on PQE  (cost=0.00..10.04 rows=0 width=408)
                            "              External SQL: SELECT "datid" AS c_d2adb610_0, "datname" AS c_d2adb760_1, "pid" AS c_d2adb8a0_2, "usesysid" AS c_d2adba10_3, "usename" AS c_d2adbb60_4, "application_name" AS c_d2adbd10_5, "client_addr" AS c_d2adbe80_6, "client_hostname" AS c_d2df1020_7, "client_port" AS c_d2df1190_8, "backend_start" AS c_d2df1300_9, "xact_start" AS c_d2df1470_10, "query_start" AS c_d2df15e0_11, "state_change" AS c_d2df1750_12, "wait_event_type" AS c_d2df18c0_13, "wait_event" AS c_d2df1a30_14, "state" AS c_d2df1b80_15, "backend_xid" AS c_d2df1cf0_16, "backend_xmin" AS c_d2df1e60_17, "query" AS c_d2df1fb0_18, "backend_type" AS c_d2df2120_19, "query_id" AS c_d2df2290_20, "transaction_id" AS c_d2df2400_21, "extend_info" AS c_d2df2570_22, "running_info" AS c_d2df26e0_23 FROM pg_catalog."hg_stat_activity""
                            Query id:[1001002491453065719]
                            Query Queue: init_warehouse.select_queue.classifier_1

                            Consulter les files d'attente des requêtes actives

                            Exécutez l'instruction SQL suivante pour obtenir des informations telles que le nom de la file d'attente, l'état actuel et le temps d'attente des instructions SQL en cours d'exécution.

                            SELECT
                                running_info::json -> 'current_stage' ->> 'stage_name' AS stage_name,
                                running_info::json -> 'current_stage' ->> 'queue_time_ms' AS queue_time_ms,
                                running_info::json ->> 'query_queue' AS query_queue,
                                *
                            FROM
                                hg_stat_activity;

                            Consulter les files d'attente dans le journal des requêtes

                            L'instruction SQL suivante permet de consulter la file d'attente, l'état actuel et le temps d'attente des instructions figurant dans le journal des requêtes. Le champ query_detail indique la file utilisée par l'instruction SQL. Pour plus d'informations sur la table système hologres.hg_query_log, consultez Table hg_query_log.

                            SELECT * FROM hologres.hg_query_log WHERE query_detail like '%query_queue = <warehouse_name>.<queue_name>%';-- You must configure the warehouse_name parameter only for virtual warehouse-based instances.
                            Remarque

                            Le champ extended_info retourné par l'instruction précédente contient les informations suivantes :

                            • serverless_computing_source : Indique l'origine de l'instruction SQL exécutée via Serverless Computing. Valeurs valides :

                              • user_submit : Instruction SQL explicitement destinée aux ressources Serverless, indépendamment de la fonctionnalité Query Queue.

                              • query_queue : Toutes les instructions de la file spécifiée sont exécutées par des ressources Serverless.

                              • query_queue_rerun : Instruction SQL automatiquement relancée sur des ressources Serverless par la fonctionnalité de contrôle des requêtes volumineuses de Query Queue.

                            • query_id_of_triggered_rerun : Ce champ n'existe que lorsque serverless_computing_source vaut query_queue_rerun. Il indique l'ID de requête original de l'instruction relancée.

                            Créer des files d'attente pour des types de requêtes spécifiques

                            • Exemple 1 : Créer une file acceptant certains types de requêtes, comme INSERT.

                              Une fois la file créée, toutes les requêtes INSERT correspondent au classificateur classifier_1 et sont dirigées vers la file insert_queue.

                              -- Create a query queue with a concurrency of 10 and a maximum queue size of 20.
                              CALL hg_create_query_queue ('insert_queue', 10, 20);
                              
                              -- Create a classifier and attach the command_tag property.
                              CALL hg_create_classifier ('insert_queue', 'classifier_1');
                              CALL hg_set_classifier_rule_condition_value ('insert_queue', 'classifier_1', 'command_tag', 'INSERT');
                            • Exemple 2 : Créer une file acceptant les requêtes d'utilisateurs spécifiques, tels que p4_123 et p4_345.

                              Après création, les requêtes SQL soumises par les utilisateurs p4_123 et p4_345 correspondent à classifier_2 et sont dirigées vers la file user_queue.

                              -- Create a query queue with a concurrency of 3 and an unlimited maximum queue size.
                              CALL hg_create_query_queue ('user_queue', 3);
                              CALL hg_set_query_queue_property('user_queue','max_queue_size', -1);
                              -- Create a classifier and set a user_name matching rule.
                              CALL hg_create_classifier ('user_queue', 'classifier_2');
                              CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', 'p4_123');
                              CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', 'p4_345');
                              Remarque

                              Si vous spécifiez un compte utilisateur personnalisé, placez son nom entre guillemets doubles (« "" »). Par exemple : CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', '"BASIC$xxx"');.

                            • Créer une file acceptant les requêtes liées aux bases de données test et postgres.

                              Une fois la file créée, les requêtes SQL concernant les bases test et postgres correspondent à classifier_3 et sont assignées à la file db_queue.

                              -- Create a query queue with a concurrency of 5.
                              CALL hg_create_query_queue ('db_queue', 5);
                              
                              -- Set the maximum queue time to 600000 ms. If a query waits longer than this time, an error is reported.
                              CALL hg_set_query_queue_property ('db_queue', 'queue_timeout_ms', '600000');
                              
                              -- Create a classifier and attach the db_name property.
                              CALL hg_create_classifier ('db_queue', 'classifier_3');
                              CALL hg_set_classifier_rule_condition_value ('db_queue', 'classifier_3', 'db_name', 'test');
                              CALL hg_set_classifier_rule_condition_value ('db_queue', 'classifier_3', 'db_name', 'postgres');
                            • Créer une file acceptant les requêtes liées au moteur HQE.

                              Une fois la file créée, les requêtes SQL liées au moteur HQE correspondent à classifier_4 et sont dirigées vers la file hqe_queue.

                              -- Create a query queue with a concurrency of 10.
                              CALL hg_create_query_queue ('hqe_queue', 10);
                              
                              -- Create a classifier and attach the engine_type property.
                              CALL hg_create_classifier ('hqe_queue', 'classifier_4');
                              CALL hg_set_classifier_rule_condition_value ('hqe_queue', 'classifier_4', 'engine_type', 'HQE');

                            Bloquer toutes les requêtes

                            Définissez la concurrence et la taille de file de insert_queue à 0 pour empêcher toute requête d'y entrer.

                            CALL hg_set_query_queue_property ('insert_queue', 'max_concurrency', '0');
                            CALL hg_set_query_queue_property ('insert_queue', 'max_queue_size', '0');