Hologres V3.0 y versiones posteriores admiten la función Cola de consultas para el procesamiento ordenado de solicitudes, el balanceo de carga y la gestión de recursos. Esta función garantiza la estabilidad del sistema y mejora la eficiencia de respuesta, especialmente en escenarios de alta concurrencia.
Introducción
De forma predeterminada, las instancias de Hologres procesan las solicitudes sin control de concurrencia. El coordinador del motor asigna recursos a medida que llegan las solicitudes. Con la función Cola de consultas, las solicitudes SQL se comparan con reglas de clasificador configuradas y se enrutan a colas de consultas específicas. Es posible establecer la concurrencia máxima para cada cola. Cuando una cola alcanza su límite, las nuevas solicitudes esperan, lo que garantiza una asignación controlada de recursos y evita la sobrecarga.

Notas importantes
En las instancias de uso general, configuraciones como las colas de consultas y los optimizadores se aplican a nivel de instancia. En las instancias de almacén virtual, estas configuraciones se aplican a nivel de almacén virtual. Si una instancia tiene varias bases de datos, la configuración de la cola de consultas y del optimizador se aplica a todas ellas.
-
Esta función solo está disponible para instancias de uso general y de almacén virtual de Hologres V3.0 o posterior.
NotaSi su instancia es V2.2 o anterior, upgrade the instance o get online support for upgrade.
A partir de Hologres V3.0.10, puede enrutar todas las consultas SQL de una cola de consultas a recursos de Serverless Computing. Esta cola de consultas ya no está restringida por configuraciones de concurrencia ni de espera en cola.
-
Cada instancia de uso general y cada almacén virtual dentro de una instancia de almacén virtual cuenta con una cola de consultas predeterminada llamada
default_queue, la cual no tiene restricciones de concurrencia ni tamaño máximo de cola.No es posible crear clasificadores para
default_queue. Solo se pueden configurar sus propiedades.default_queuegestiona todas las solicitudes que no coinciden con otras colas de consultas.
Cada instancia de uso general y cada almacén virtual admite hasta 10 colas de consultas, incluida
default_queue. Cada cola de consultas puede tener hasta 10 clasificadores.No es posible habilitar la Cola de consultas de forma independiente en una instancia secundaria de solo lectura. No obstante, las reglas de la cola de consultas de la instancia principal se aplican a la instancia secundaria.
Solo las consultas con un engine_type de
HQE,PQE,SQEoHiveQEcoinciden con las colas de consultas. Los tipos de consulta compatibles incluyen SELECT, INSERT, UPDATE, DELETE e INSERT desde COPY y CTAS.Las consultas aceleradas por Fixed Plan no entran en la cola de consultas. Para obtener más información, consulte Use Fixed Plan to accelerate SQL execution.
Un clasificador puede pertenecer únicamente a una cola de consultas, pero una cola de consultas puede tener varios clasificadores.
Procedimiento
Crear una cola de consultas
-
Sintaxis
-
Instancia de uso general
CALL hg_create_query_queue (query_queue_name, max_concurrency, max_queue_size); -
Instancia de almacén virtual
CALL hg_create_query_queue (warehouse_name, query_queue_name, max_concurrency, max_queue_size);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, la cola de consultas se crea en el almacén virtual de la conexión actual de forma predeterminada.NotaEste parámetro es obligatorio solo para instancias de almacén virtual.
query_queue_name: Obligatorio. Nombre de la cola de consultas. El nombre debe ser único dentro de la instancia o almacén virtual actual.max_concurrency: Opcional. Concurrencia máxima. El valor predeterminado es -1, lo que indica que no hay límite de concurrencia. El valor debe estar en el rango [-1, 2147483647).max_queue_size: Opcional. Tamaño máximo de la cola. Este parámetro especifica el número máximo de sentencias SQL que pueden ponerse en cola. El valor predeterminado es -1, lo que indica que el tamaño de la cola es ilimitado. El valor debe estar en el rango [-1, 2147483647).
NotaAl crear una cola de consultas, puede configurar las propiedades anteriores. Para obtener información sobre cómo configurar otras propiedades, consulte Set query queue properties.
-
-
Ejemplos
-
Instancia de uso general
-- 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); -
Instancia de almacén virtual
-- 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);
-
Crear un clasificador
-
Sintaxis
-
Instancia de uso general
CALL hg_create_classifier (query_queue_name, classifier_name, priority); -
Instancia de almacén virtual
CALL hg_create_classifier (warehouse_name, query_queue_name, classifier_name, priority);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.NotaEste parámetro solo aplica a instancias de almacén virtual.
query_queue_name: Obligatorio. Nombre de la cola de consultas para la cual desea crear un clasificador.classifier_name: Obligatorio. Nombre del clasificador. El nombre debe ser único dentro de la instancia o almacén virtual actual.-
priority: Opcional. Prioridad de coincidencia del clasificador. Un valor mayor indica una prioridad más alta. El valor predeterminado es50. El valor debe estar en el rango [1, 100]. Si no especifica este parámetro al crear el clasificador, podrá configurarlo posteriormente. Para obtener más información, consulte Set classifier properties.NotaLos clasificadores con mayor prioridad se evalúan primero.
Si varios clasificadores tienen la misma prioridad, se evalúan según el orden lexicográfico de sus nombres de cola de consultas y clasificador. El clasificador cuyo nombre aparezca primero en orden lexicográfico se evaluará antes. Por ejemplo, queue_a(classifier_1) tiene mayor prioridad que queue_b(classifier_1).
-
-
Ejemplos
-
Instancia de uso general
-- 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); -
Instancia de almacén virtual
-- 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);
-
Configurar condiciones del clasificador
Al configurar las condiciones del clasificador, puede enrutar sentencias SQL específicas a colas de consultas particulares. Si una consulta cumple con la condición de un clasificador, se colocará en la cola de consultas de dicho clasificador.
-
Sintaxis
-
Instancia de uso general
CALL hg_set_classifier_rule_condition_value (query_queue_name, classifier_name, condition_name, condition_value); -
Instancia de almacén virtual
CALL hg_set_classifier_rule_condition_value (warehouse_name, query_queue_name, classifier_name, condition_name, condition_value);
-
-
Descripción de parámetros
Nombre
Descripción
warehouse_nameOpcional. Nombre del almacén virtual. Si no configura este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.
NotaDebe configurar este parámetro únicamente para instancias de almacén virtual.
query_queue_nameObligatorio. Nombre de la cola de consultas.
classifier_nameObligatorio. Nombre del clasificador al que desea agregar una regla de coincidencia.
condition_nameycondition_valueObligatorio. Las condiciones admitidas son:
user_name: UID de la cuenta actual.command_tag: Tipo de solicitud. Valores válidos:INSERT,SELECT,UPDATEyDELETE.Para mejorar la eficiencia de ejecución de las operaciones
COPY, Hologres implementa dichas operaciones medianteCOPYutilizandoINSERT. Por lo tanto, cuando se limita la concurrencia de las operacionesINSERT, también se ve afectada la concurrencia de escritura de las operacionesCOPY.db_name: Nombre de la base de datos.engine_type: Motor utilizado por la solicitud. Valores válidos:HQE,PQE,SQEyHiveQE. Se recomienda utilizar esta propiedad a partir de Hologres V3.1.18.digest: Huella digital SQL. Para obtener más información sobre las huellas digitales SQL, consulte SQL fingerprints.application_name: Aplicación que inició la consulta. Esta propiedad solo es compatible con Hologres V3.0.9 y versiones posteriores.storage_mode: Modo de almacenamiento. Valores válidos: hot y cold. Se recomienda utilizar esta propiedad a partir de Hologres V3.1.18 o V3.1.8.write_table: Tabla de destino de la consulta. El formato es<db_name>.<schema_name>.<table_name>. Esta propiedad solo es compatible con Hologres V3.1 y versiones posteriores.read_table:Tabla de origen de la consulta. Esta propiedad solo es compatible con Hologres V3.1 y versiones posteriores.
Los clasificadores admiten múltiples condiciones, y cada condición puede aceptar un conjunto de valores. A partir de Hologres V3.1.18, se admiten reglas avanzadas de clasificador. Tenga en cuenta lo siguiente:
-
Relación entre condiciones:
Lógica AND: Cuando un clasificador tiene múltiples condiciones (por ejemplo,
user_nameYcommand_tag), una consulta debe cumplir todas ellas para entrar en la cola de ese clasificador.Lógica OR: Para lograr una relación "OR" (donde una consulta coincide si cumple cualquiera de varios criterios), cree varios clasificadores separados, cada uno con una condición.
-
Coincidencia de múltiples valores dentro de una condición
-
Coincidencia de subconjunto (⊆): Para condiciones como
user_name,command_tag,db_name,digest,application_name. Los valores de la consulta deben ser un subconjunto de los valores aceptables. -
Coincidencia exacta (==): Para
storage_mode. Los valores de la consulta deben coincidir exactamente con los valores aceptables. -
Coincidencia de intersección (∩): Para
engine_type,write_table,read_table. La consulta debe compartir al menos un valor con los valores aceptables.
-
NotaConfigure las condiciones de filtro una por una. Si el valor de la condición distingue entre mayúsculas y minúsculas, enciérrelo entre comillas dobles ("").
Si una condición acepta un conjunto de valores, configúrela varias veces. Por ejemplo, si un clasificador necesita coincidir con solicitudes donde
command_tagseaSELECToINSERT, ejecute dos sentencias SQL para establecer las reglas.
-
Ejemplos
Los siguientes ejemplos utilizan una instancia de almacén virtual. Para una instancia de uso general, omita el primer parámetro de entrada. Cree una cola de consultas llamada
test_queuepara el almacén virtual predeterminadoinit_warehouse:CALL hg_create_query_queue ('init_warehouse', 'test_queue');-
Ejemplo 1: Enrutar una consulta a la cola de consultas
test_queuesi la consulta es enviada por el usuariop4_123op4_456, o si su huella digital SQL esxxxoyyy.-- 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'); -
Ejemplo 2: Enrutar una consulta a la cola de consultas
test_queuesi la consulta es iniciada por la aplicaciónxx_biy accede tanto a almacenamiento frío como caliente.-- 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'); -
Ejemplo 3: Enrutar todas las solicitudes que acceden a datos de almacenamiento frío a la cola de consultas
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'); -
Ejemplo 4: Enrutar todas las solicitudes que leen de la tabla a y escriben en la tabla b a la cola de consultas test_queue.
-- 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');
-
Capacidades avanzadas
Controlar consultas grandes
Para controlar el impacto de consultas grandes en una instancia, utilice colas de consultas para gestionar la duración de ejecución y los errores de falta de memoria (OOM). Para las consultas que superan la duración de ejecución especificada o el umbral de OOM, detenga la solicitud o vuelva a ejecutarla utilizando recursos de Serverless Computing.
Hologres V3.0 admite volver a ejecutar únicamente consultas SELECT. La versión V4.1 permite volver a ejecutar comandos nativos
INSERT OVERWRITE, siempre que el parámetro GUChg_enable_query_queue_rerun_insert_overwrite_via_serverlessesté habilitado. Si utiliza FETCH para recuperar datos al volver a ejecutar una consulta, esta se vuelve a ejecutar basándose en las condiciones del clasificador de la cola de consultas configurada únicamente cuando FETCH no logra recuperar ningún dato. Este proceso garantiza la precisión de los resultados.La ejecución real de una consulta incluye tres partes: optimization_cost (generación del plan de ejecución), start_query_cost (inicio de la consulta) y get_next_cost (ejecución de la consulta). Para obtener más información, consulte Get and analyze slow query logs. La Cola de consultas considera únicamente la duración de la parte get_next_cost. No considera el tiempo dedicado a esperar recursos o bloqueos.
-
Controlar la duración de ejecución
Puede configurar el parámetro
big_query_execution_time_threshold_secpara establecer la duración de ejecución en segundos (s). El valor predeterminado es -1, lo que indica que no hay límite. El valor debe estar en el rango [-1, 2147483647). Los siguientes ejemplos muestran cómo controlar las consultas según la duración de ejecución:-
Escenario 1: Finalizar consultas que superan la duración de ejecución
Las consultas que entran en la cola
select_queuese ejecutan utilizando recursos locales. Si la duración de ejecución supera los 10 segundos, la consulta finaliza automáticamente.CALL hg_set_query_queue_property ('select_queue', 'big_query_execution_time_threshold_sec', '10'); -
Escenario 2: Volver a ejecutar consultas que superan la duración de ejecución
Las consultas que entran en la cola
select_queuese ejecutan utilizando recursos locales. Si la duración de ejecución supera los 10 segundos, la consulta finaliza automáticamente en los recursos de la instancia y se vuelve a ejecutar utilizando recursos de 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');Notaenable_rerun_as_big_query_when_exceeded_execution_time_threshold: Especifica si se debe volver a ejecutar una solicitud SQL utilizando otros recursos después de que la solicitud haya finalizado por superar la duración de ejecución. El valor predeterminado es false.rerun_big_query_on_computing_resource: Especifica el nombre del recurso de Serverless Computing que se utilizará para volver a ejecutar la solicitud SQL.
-
-
Volver a ejecutar consultas grandes que causan errores OOM
Las consultas que entran en la cola
select_queuese ejecutan utilizando recursos locales. Si una consulta provoca un error OOM y ocupa más de 10 GB de memoria en un solo worker, la consulta se vuelve a ejecutar utilizando recursos de Serverless Computing. El parámetrobig_query_mem_threshold_when_oom_gbcontrola el umbral de memoria para consultas OOM. El valor predeterminado es -1, lo que indica que no hay límite. El valor debe estar en el rango [-1, 64). El siguiente código proporciona un ejemplo: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');
Gestionar colas de consultas
Eliminar una cola de consultas
-
Sintaxis
-
Instancia de uso general
CALL hg_drop_query_queue (query_queue_name); -
Instancia de almacén virtual
CALL hg_drop_query_queue (warehouse_name, query_queue_name);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.NotaEste parámetro solo aplica a instancias de almacén virtual.
query_queue_name: Obligatorio. Nombre de la cola de consultas.
-
Ejemplos
-
Instancia de uso general
-- Delete the insert_queue query queue. CALL hg_drop_query_queue ('insert_queue'); -
Instancia de almacén virtual
-- In the init_warehouse virtual warehouse, delete the insert_queue query queue. CALL hg_drop_query_queue ('init_warehouse', 'insert_queue');
Eliminar propiedades de la cola de consultas
-
Sintaxis
-
Instancia de uso general
CALL hg_remove_query_queue_property (query_queue_name, property_key); -
Instancia de almacén virtual
CALL hg_remove_query_queue_property (warehouse_name, query_queue_name, property_key);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.NotaEste parámetro solo aplica a instancias de almacén virtual.
query_queue_name: Obligatorio. Nombre de la cola de consultas.property_key: Obligatorio. Nombre de la propiedad. Las propiedades admitidas sonmax_concurrency,max_queue_sizeyqueue_timeout_ms. Para obtener más información sobre las propiedades, consulte Set query queue properties.
-
-
Ejemplos
-
Instancia de uso general
-- 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'); -
Instancia de almacén virtual
-- 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');
-
Consultar metadatos de la cola de consultas
Los metadatos de las colas de consultas se almacenan en la tabla del sistema hologres.hg_query_queues. Los campos principales se describen en la siguiente tabla:
Nombre del campo | Tipo de campo | Descripción |
| INT | ID del almacén virtual. Nota Para instancias de General-purpose, el valor del campo warehouse_id es 0. |
| TEXT | Nombre del almacén virtual. Nota Para instancias de General-purpose, warehouse_name está vacío. |
| TEXT | Nombre de la cola de consultas. |
| TEXT | Nombre de la propiedad. |
| TEXT | Valor de la propiedad. |
Establecer propiedades de la cola de consultas
-
Sintaxis
-
Instancia de uso general
CALL hg_set_query_queue_property (query_queue_name, property_key, property_value); -
Instancia de almacén virtual
CALL hg_set_query_queue_property (warehouse_name, query_queue_name, property_key, property_value);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del almacén virtual cuyas propiedades de cola de consultas desea configurar. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.NotaEste parámetro es obligatorio solo para instancias de almacén virtual.
query_queue_name: Obligatorio. Nombre de la cola de consultas cuyas propiedades desea configurar.-
property_keyyproperty_value: Obligatorio. Las propiedades admitidas se describen a continuación:max_concurrency: Concurrencia máxima. El valor predeterminado es -1, lo que indica que no hay límite de concurrencia. El valor debe estar en el rango [-1, 2147483647).max_queue_size: Tamaño máximo de la cola. Este parámetro especifica el número máximo de sentencias SQL que pueden ponerse en cola. El valor predeterminado es -1, lo que indica que el tamaño de la cola es ilimitado. El valor debe estar en el rango [-1, 2147483647).queue_timeout_ms: Duración máxima de espera en la cola en milisegundos (ms). Si una consulta espera en la cola durante un periodo superior a este valor, la consulta se detiene automáticamente. El valor predeterminado es -1, lo que indica que no hay límite en la duración de la cola. El valor debe estar en el rango [-1, 2147483647).
-
-
Ejemplos
-
Instancia de uso general
-- 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'); -
Instancia de almacén virtual
-- 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');
-
Borrar solicitudes en cola
-
Sintaxis
-
Instancia de uso general
CALL hg_clear_query_queue (query_queue_name); -
Instancia de almacén virtual
CALL hg_clear_query_queue (warehouse_name, query_queue_name);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del almacén virtual. Si no especifica este parámetro, se utiliza el almacén virtual de la conexión actual de forma predeterminada.NotaEste parámetro es obligatorio solo para instancias de almacén virtual.
query_queue_name: Obligatorio. Nombre de la cola de consultas.
-
-
Ejemplos
-
Instancia de uso general
-- Clear all queued requests in the select_queue query queue. CALL hg_clear_query_queue ('select_queue'); -
Instancia de almacén virtual
-- 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');
-
Gestión de clasificadores
Eliminar un clasificador
-
Sintaxis
-
Instancia de uso general
CALL hg_drop_classifier (query_queue_name, classifier_name); -
Instancia de virtual warehouse
CALL hg_drop_classifier (warehouse_name, query_queue_name, classifier_name);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.NotaEste parámetro es obligatorio solo para instancias de virtual warehouse.
query_queue_name: Obligatorio. Nombre de la cola de consultas para la que desea crear un clasificador.classifier_name: Obligatorio. Nombre del clasificador.
-
-
Ejemplos
-
Instancia de uso general
-- In the insert_queue query queue, delete the classifier_insert classifier. CALL hg_drop_classifier ('insert_queue', 'classifier_insert'); -
Instancia de virtual warehouse
-- 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');
-
Quitar propiedades del clasificador
-
Sintaxis
-
Instancia de uso general
CALL hg_remove_classifier_property (query_queue_name, classifier_name, property_key); -
Instancia de virtual warehouse
CALL hg_remove_classifier_property (warehouse_name, query_queue_name, classifier_name, property_key);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.NotaEste parámetro es obligatorio solo para instancias de virtual warehouse.
query_queue_name: Obligatorio. Nombre de la cola de consultas.classifier_name: Obligatorio. Nombre del clasificador.property_key: Obligatorio. La propiedad compatible es priority. Para obtener más información sobre las propiedades del clasificador, consulte Set classifier properties.
-
-
Ejemplos
-
Instancia de uso general
-- 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'); -
Instancia de virtual warehouse
-- 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');
-
Establecer propiedades del clasificador
-
Sintaxis
-
Instancia de uso general
CALL hg_set_classifier_property (query_queue_name, classifier_name, property_key, property_value); -
Instancia de virtual warehouse
CALL hg_set_classifier_property (warehouse_name, query_queue_name, classifier_name, property_key, property_value);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.NotaEste parámetro es obligatorio solo para instancias de virtual warehouse.
query_queue_name: Obligatorio. Nombre de la cola de consultas.classifier_name: Obligatorio. Nombre del clasificador.-
property_keyyproperty_value: Obligatorio. La propiedad compatible se describe a continuación:priority: Prioridad de coincidencia del clasificador. Un valor mayor indica una prioridad más alta. El valor predeterminado es 50. El valor debe estar en el rango [1, 100].NotaLos clasificadores con mayor prioridad se evalúan primero.
Si varios clasificadores tienen la misma prioridad, se evalúan según el orden lexicográfico de sus nombres de cola de consultas y clasificador. El clasificador cuyo nombre aparece primero en orden lexicográfico se evalúa antes. Por ejemplo, queue_a(classifier_1) tiene mayor prioridad que queue_b(classifier_1).
-
-
Ejemplos
-
Instancia de uso general
-- 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'); -
Instancia de virtual warehouse
-- 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');
-
Quitar condiciones del clasificador
-
Quitar una condición (condition_name) de un clasificador
-
Sintaxis
-
Instancia de uso general
CALL hg_remove_classifier_rule_condition_value (query_queue_name, classifier_name, condition_name, condition_value); -
Instancia de virtual warehouse
CALL hg_remove_classifier_rule_condition_value (warehouse_name, query_queue_name, classifier_name, condition_name, condition_value);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.NotaEste parámetro es obligatorio solo para instancias de virtual warehouse.
query_queue_name: Obligatorio. Nombre de la cola de consultas.classifier_name: Obligatorio. Nombre del clasificador.condition_nameycondition_value: Obligatorio. Nombre y valor de la condición que se va a quitar. Las condiciones compatibles sonuser_name,command_tag,db_name,engine_type,digestystorage_mode. Para obtener más información, consulte Configure classifier conditions.
-
-
Ejemplos
-
Instancia de uso general
-- 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'); -
Instancia de virtual warehouse
-- 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');
-
-
-
Quitar todas las condiciones (condition_name) de un clasificador
-
Sintaxis
-
Instancia de uso general
CALL hg_remove_classifier_rule_condition (query_queue_name, classifier_name, condition_name); -
Instancia de virtual warehouse
CALL hg_remove_classifier_rule_condition (warehouse_name, query_queue_name, classifier_name, condition_name);
-
-
Descripción de parámetros
-
warehouse_name: Opcional. Nombre del virtual warehouse. Si no especifica este parámetro, se utiliza de forma predeterminada el virtual warehouse de la conexión actual.NotaEste parámetro es obligatorio solo para instancias de virtual warehouse.
query_queue_name: Obligatorio. Nombre de la cola de consultas.classifier_name: Obligatorio. Nombre del clasificador.condition_name: Obligatorio. Nombre de la propiedad de condición que desea eliminar. Las propiedades de condición compatibles sonuser_name,command_tag,db_name,engine_type,digestystorage_mode. Para obtener más información sobre las propiedades de condición en las reglas de coincidencia del clasificador, consulte Configure classifier conditions.
-
-
Ejemplos
-
Instancia de uso general
-- 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'); -
Instancia de virtual warehouse
-- 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');
-
-
Consultar metadatos del clasificador
Los metadatos de los clasificadores se almacenan en la tabla del sistema hologres.hg_classifiers. Los campos principales se describen en la siguiente tabla:
Campo | Tipo de campo | Descripción |
| INT | ID del virtual warehouse. Nota Para instancias de uso general, el valor del campo warehouse_id es 0. |
| TEXT | Nombre del virtual warehouse. Nota Para instancias de uso general, warehouse_name está vacío. |
| TEXT | Nombre de la cola de consultas. |
| TEXT | Nombre del clasificador. |
| TEXT | Nombre de la propiedad. |
| TEXT | Valor de la propiedad. |
Enrutar consultas de una cola a recursos de Serverless Computing
A partir de Hologres V3.0.10, puede especificar que todas las consultas de una cola de consultas específica se ejecuten mediante recursos de Serverless Computing. Una vez configurado, las consultas de la cola solicitan recursos serverless para su ejecución según el orden de solicitud y la prioridad establecida. Estas consultas ya no se ven afectadas por la configuración de concurrencia ni por el mecanismo de espera de la cola. Para obtener más información, consulte Serverless Computing User Guide.
Si Serverless Computing no es compatible con la zona donde se encuentra su instancia, las consultas seguirán ejecutándose con recursos locales.
-
Instancia de uso general
-
Sintaxis
-- 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>'); -
Descripción de parámetros
query_queue_name: Obligatorio. Nombre de la cola de consultas.priority: Prioridad. El valor predeterminado es 3. El valor debe estar en el rango[1, 5].
-
Ejemplo
-- 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');
-
-
Instancia de virtual warehouse
-
Sintaxis
-- 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>'); -
Descripción de parámetros
warehouse_name: Obligatorio. Nombre del virtual warehouse.query_queue_name: Obligatorio. Nombre de la cola de consultas.priority: Obligatorio. Prioridad. El valor predeterminado es 3. El valor debe estar en el rango[1, 5].
-
Ejemplo
-- 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');
-
Escenarios comunes
Consultar la cola de consultas de una sentencia SQL
Ejecute EXPLAIN para consultar la cola de consultas que utiliza una sentencia SQL específica. El campo Query Queue muestra la cola de consultas en uso. A continuación se muestra un ejemplo de código.
-- 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;
Se devuelve el siguiente resultado.
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
Consultar las colas de consultas activas
Ejecute la siguiente sentencia SQL para consultar información como el nombre de la cola de consultas, el estado actual y el tiempo de espera de las sentencias SQL en consultas activas.
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;
Consultar las colas de consultas de sentencias SQL en Query Log
Puede ejecutar la siguiente sentencia SQL para consultar la cola de consultas, el estado actual y el tiempo de espera de las sentencias SQL registradas en Query Log. El campo query_detail registra la cola de consultas que utilizó la sentencia SQL. Para obtener más información sobre la tabla del sistema hologres.hg_query_log, consulte The hg_query_log table.
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.
El campo extended_info que devuelve la sentencia SQL anterior contiene la siguiente información:
-
serverless_computing_source: Indica el origen de la sentencia SQL que se ejecutó con recursos de Serverless Computing. Los valores válidos son los siguientes:user_submit: Sentencia SQL que se especificó para ejecutarse en recursos serverless, independientemente de la función de cola de consultas.query_queue: Todas las sentencias SQL de la cola de consultas especificada se ejecutan mediante recursos serverless.query_queue_rerun: Sentencia SQL que la función de control de consultas grandes de la cola de consultas reejecutó automáticamente en recursos serverless.
query_id_of_triggered_rerun: Este campo solo existe cuando serverless_computing_source es query_queue_rerun. Indica el Query ID original de la sentencia SQL reejecutada.
Crear colas de consultas para tipos específicos de consultas
-
Ejemplo 1: Crear una cola de consultas que acepte tipos específicos de solicitudes, como INSERT.
Una vez creada la cola de consultas, todas las solicitudes INSERT coinciden con el clasificador
classifier_1y se enrutan a la cola de consultasinsert_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'); -
Ejemplo 2: Crear una cola de consultas que acepte solicitudes de usuarios específicos, como los usuarios
p4_123yp4_345.Después de la creación, las solicitudes SQL enviadas por los usuarios p4_123 y p4_345 coinciden con classifier_2 y se enrutan a la cola de consultas
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');NotaSi especifica una cuenta de usuario personalizada, debe encerrar su nombre entre comillas dobles (""). Por ejemplo,
CALL hg_set_classifier_rule_condition_value ('user_queue', 'classifier_2', 'user_name', '"BASIC$xxx"');. -
Crear una cola de consultas que acepte consultas relacionadas con las bases de datos
testypostgres.Una vez creada la cola de consultas, las solicitudes SQL relacionadas con las bases de datos
testypostgrescoinciden conclassifier_3y se asignan a la cola de consultasdb_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'); -
Crear una cola de consultas que acepte solicitudes relacionadas con el motor HQE.
Una vez creada la cola de consultas, las solicitudes SQL relacionadas con el motor HQE coinciden con
classifier_4y se enrutan a la cola de consultashqe_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');
Bloquear todas las solicitudes
Establezca la concurrencia y el tamaño de la cola de insert_queue en 0 para impedir que las consultas ingresen a una cola de consultas.
CALL hg_set_query_queue_property ('insert_queue', 'max_concurrency', '0');
CALL hg_set_query_queue_property ('insert_queue', 'max_queue_size', '0');