Configuración del control de simultaneidad de sentencias SQL
Escenarios
El control de simultaneidad de sentencias SQL pretende mantener las instancias de TaurusDB ejecutándose de forma estable incluso si hay un aumento repentino de sentencias SQL simultáneas.
Restricciones
- Esta función solo está disponible para instancias de TaurusDB que cumplen con los siguientes requisitos:
- 2.0.28.40 > versión del kernel ≥ 2.0.28.15
- Versión del kernel ≥ 2.0.29.1
- Las reglas de control de simultaneidad para sentencias INSERT solo se admiten cuando la versión del kernel de su instancia de TaurusDB es 2.0.54.240600 o posterior.
- Una sola regla de control de simultaneidad puede contener un máximo de 128 palabras clave.
- No se pueden utilizar barras invertidas simples (\) ni caracteres nulos simples (' ') como palabras clave.
- Se ignorarán los espacios al principio y al final de una palabra clave y los caracteres nulos especiales (como \'t', \'r' y \'n').
- Una regla de control de concurrencia SQL no puede terminar con una virgulilla (~).
- Las palabras clave en una regla de control de concurrencia se ordenan en un orden específico, y el sistema las igualará de primera a última. Por ejemplo, si una regla contiene la palabra clave a~and~b, el sistema solo coincide con xxx a>1 and b>2.
- Cada regla de control de simultaneidad SQL se aplica solo a las sentencias SQL que la base de datos recibió después de crear la regla.
- Si se crean diferentes reglas para el nodo primario y las réplicas de lectura de una instancia de BD, las reglas siguen aplicándose al nodo primario y las réplicas de lectura después de conmutar sus roles.
- Si una instrucción de SQL coincide con varias reglas de control de simultaneidad, solo se aplica la regla creada más recientemente.
- Las declaraciones SQL que se hayan ejecutado antes de agregar una regla de control de concurrencia no se cuentan.
- Si la versión del kernel de TaurusDB es 2.0.54.240600 o posterior, la longitud total de todas las reglas y consultas simultáneas de un solo tipo SQL (SELECT, UPDATE, DELETE o INSERT) no puede superar los 4,000 bytes. La longitud de una sola regla no puede superar los 1,000 bytes.
- Si la versión del kernel de TaurusDB es anterior a 2.0.54.240600, la longitud total de todas las reglas y consultas simultáneas de un solo tipo SQL (SELECT, UPDATE o DELETE) no puede superar los 1,024 bytes.
- Si hay demasiadas reglas de control de simultaneidad, se deteriorará el rendimiento de las instrucciones SELECT, UPDATE, DELETE e INSERT.
- Las reglas de control de simultaneidad SQL se aplican en función de la coincidencia de prefijos. Por ejemplo, si la regla de control de simultaneidad es SELECT~COUNT~t1, se interceptarán las sentencias SQL SELECT COUNT(*) FROM t1 y SELECT COUNT(*) FROM t1 LIMIT 1.
- Después de activar el control de simultaneidad, se informa de un error de ejecución en el lado del servicio, lo que indica que se interrumpió la ejecución de la consulta. El código de error es ERROR 1317 (70100).
- Esta función controla cuántas sentencias pueden ejecutarse al mismo tiempo. Sin embargo, no limita la concurrencia para:
- catálogo del sistema
- Consultas donde no hay datos de base de datos involucrados, como select sleep(xxx)
- Cuenta root
- Sentencias SQL en procedimientos, activadores y funciones almacenados
Procedimiento
- Inicie sesión en la consola de gestión.
- Haga clic en
en la esquina superior izquierda y seleccione una región y un proyecto.
- Haga clic en
en el extremo superior izquierdo de la página y seleccione Databases > TaurusDB.
- En la página Instances, haga clic en el nombre de la instancia.
- En el panel de navegación, elija DBA Assistant > Historical Diagnosis.
- Elija SQL Explorer > Concurrency Control.
- En la página mostrada, habilite Concurrency Control.
Figura 1 Habilitación del control de simultaneidad de sentencias de SQL
- Haga clic en Add Rule. En el cuadro de diálogo que aparece, especifique SQL Type, Keyword y Max. Concurrency.
Figura 2 Agregar una regla de control de simultaneidad
- Keyword: puede introducir palabras clave o copiar una sentencia SQL existente en el recuadro de texto y hacer clic en Generate Keyword.
Keyword: Tome a select~a como ejemplo. select y a son dos palabras clave contenidas en una regla de control de simultaneidad. Las palabras clave están separadas por una tilde (~). En este ejemplo, la regla restringe la ejecución de solo las sentencias SQL que contienen las palabras clave select y a.
- Max. Concurrency: Las sentencias SQL que cumplan el tipo y la palabra clave SQL especificados y excedan el valor de Max. Concurrency no se ejecutarán.
- Si selecciona Kill existing sessions that meet this rule, se eliminarán las sesiones que cumplan con la regla.
- Si selecciona Synchronize rules to other nodes, las nuevas reglas se pueden sincronizar con otros nodos en la misma instancia.
- Keyword: puede introducir palabras clave o copiar una sentencia SQL existente en el recuadro de texto y hacer clic en Generate Keyword.
- Confirme la configuración y haga clic en OK.
- Si no se requiere una regla de control de simultaneidad, seleccione la regla y haga clic en Delete encima de la lista de reglas. En el cuadro de diálogo que aparece en pantalla, haga clic en OK.