Modifica los perfiles de configuración.
Sintaxis:
La cláusula ON CLUSTER permite modificar perfiles de configuración en un clúster; véase DDL distribuido.
Reemplazar o modificar ajustes
ALTER SETTINGS PROFILE admite dos formas distintas de cambiar los ajustes y los perfiles padre (heredados) de un perfil. Su comportamiento es muy diferente, por lo que es importante elegir la correcta.
Una cláusula SETTINGS sin modificadores (sin ADD, MODIFY ni DROP) reemplaza por completo la lista de ajustes y todos los perfiles padre del perfil por exactamente lo que enumeres. Todo lo que estuviera presente antes pero no figure en la lista se elimina silenciosamente; no hay ninguna advertencia.
Dado que la forma simple SETTINGS reemplaza todo por completo, usarla para “sobrescribir una configuración” sobre un perfil base ya poblado eliminará cualquier otra configuración (y cualquier perfil padre) de ese perfil. Si solo quieres cambiar una única configuración y conservar el resto, usa la forma incremental MODIFY/ADD/DROP que se describe a continuación.
Este es el mismo comportamiento que SETTINGS en CREATE SETTINGS PROFILE: la cláusula define la lista completa de configuraciones.
Las palabras clave ADD, MODIFY y DROP cambian entradas individuales y dejan intacto todo lo demás del perfil:
ADD SETTINGS variable = value [constraints] — añade una configuración que todavía no está presente.
MODIFY SETTINGS variable = value [constraints] — reemplaza la entrada de una sola configuración. Se sobrescribe la entrada completa (valor y restricciones), así que vuelve a especificar MIN/MAX/READONLY/etc. si quieres conservarlos.
DROP SETTINGS variable [,...] — elimina las configuraciones indicadas.
ADD PROFILES 'profile_name' [,...] / DROP PROFILES 'profile_name' [,...] — añade o elimina perfiles padre (heredados).
DROP ALL SETTINGS / DROP ALL PROFILES — elimina todas las configuraciones o todos los perfiles padre.
Varias de estas cláusulas pueden combinarse en una sola sentencia; por ejemplo, DROP SETTINGS a ADD SETTINGS b = 1.
Sobrescribe una sola configuración mientras conservas el resto de un perfil poblado:
Añada un nuevo ajuste restringido y elimine otro:
Gestione los perfiles principales de forma incremental:
Compruebe siempre el resultado con SHOW CREATE SETTINGS PROFILE:
Incremental vs reemplazo completo
Una cláusula SETTINGS por sí sola elimina toda la configuración existente y todos los perfiles heredados (padre) del perfil antes de aplicar la nueva.
Para cambiar una sola configuración y mantener el resto, usa ADD SETTINGS o MODIFY SETTINGS (consulta los ejemplos a continuación).
Tanto ADD SETTINGS como MODIFY SETTINGS conservan los demás ajustes del perfil, pero tratan de forma distinta una entrada existente para el mismo ajuste:
ADD SETTINGS variable = value ... primero elimina cualquier entrada existente para variable y luego inserta la nueva. Por lo tanto, reemplaza el valor junto con todas las restricciones de ese ajuste. Cualquier MIN, MAX o permiso de escritura (READONLY/WRITABLE/CONST/CHANGEABLE_IN_READONLY) definido previamente para variable que no se repita se descarta.
MODIFY SETTINGS variable = value ... fusiona campo por campo: sobrescribe solo los campos que realmente se especifican (el valor, MIN, MAX o el permiso de escritura) y mantiene los demás campos de ese ajuste tal como estaban.
En resumen, use MODIFY SETTINGS cuando solo quiera ajustar un aspecto de un ajuste (por ejemplo, solo el valor, manteniendo un MAX existente); use ADD SETTINGS cuando quiera redefinir un ajuste desde cero.
Cree un perfil para usarlo en los ejemplos siguientes:
Agregue o cambie un solo ajuste sin modificar los demás:
Como MODIFY combina los campos uno por uno, cambiar solo el valor de una configuración conserva sus restricciones existentes:
Añade una configuración (manteniendo las demás) y vuelve a definirla por completo si ya existe:
A diferencia de MODIFY, si se vuelve a ejecutar ADD solo con un valor, se eliminan las restricciones definidas previamente para ese parámetro:
Elimina una o varias configuraciones con nombre:
Elimine todos los parámetros de configuración de una vez:
Trabajar con perfiles heredados
Agregue o elimine perfiles principales (heredados) sin afectar la configuración del propio perfil: