Modifie les profils de paramètres.
Syntaxe :
La clause ON CLUSTER permet de modifier les profils de paramètres d’un cluster, voir DDL distribué.
Remplacer ou modifier des paramètres
ALTER SETTINGS PROFILE prend en charge deux manières distinctes de modifier les paramètres et les profils parents (hérités) d’un profil. Leur comportement diffère fortement, il est donc important de choisir la bonne.
Une clause SETTINGS seule (sans ADD, MODIFY ni DROP) remplace l’intégralité de la liste des paramètres ainsi que tous les profils parents du profil par exactement les éléments que vous indiquez. Tout ce qui était présent auparavant mais ne figure pas dans la liste est supprimé sans avertissement.
Comme la forme SETTINGS seule effectue un remplacement complet, l’utiliser pour « redéfinir un seul paramètre » sur un profil de base déjà renseigné supprimera tous les autres paramètres (ainsi que tous les profils parents) de ce profil. Si vous voulez seulement modifier un seul paramètre tout en conservant le reste, utilisez la forme incrémentielle MODIFY/ADD/DROP décrite ci-dessous.
Il s’agit du même comportement que SETTINGS dans CREATE SETTINGS PROFILE : la clause définit la liste complète des paramètres.
Les mots-clés ADD, MODIFY et DROP modifient des entrées individuelles tout en laissant le reste du profil intact :
ADD SETTINGS variable = value [constraints] — ajoute un paramètre qui n’est pas encore présent.
MODIFY SETTINGS variable = value [constraints] — remplace l’entrée d’un seul paramètre. L’entrée entière (valeur et contraintes) est remplacée ; indiquez donc à nouveau MIN/MAX/READONLY/etc. si vous souhaitez les conserver.
DROP SETTINGS variable [,...] — supprime les paramètres indiqués.
ADD PROFILES 'profile_name' [,...] / DROP PROFILES 'profile_name' [,...] — ajoute ou supprime des profils parents (hérités).
DROP ALL SETTINGS / DROP ALL PROFILES — supprime tous les paramètres ou tous les profils parents.
Plusieurs de ces clauses peuvent être combinées dans une seule instruction, par exemple DROP SETTINGS a ADD SETTINGS b = 1.
Surchargez un seul paramètre tout en conservant le reste d’un profil existant :
Ajoutez un nouveau paramètre soumis à des contraintes et supprimez-en un autre :
Gérez les profils parents de façon incrémentale :
Vérifiez toujours le résultat à l’aide de SHOW CREATE SETTINGS PROFILE :
Incrémental vs remplacement complet
Une clause SETTINGS utilisée seule supprime tous les paramètres existants ainsi que tous les profils hérités (parents) du profil avant d’appliquer les nouveaux.
Pour modifier un seul paramètre tout en conservant les autres, utilisez ADD SETTINGS ou MODIFY SETTINGS (voir les exemples ci-dessous).
ADD SETTINGS et MODIFY SETTINGS conservent tous deux les autres paramètres du profil, mais ils traitent différemment une entrée existante pour le même paramètre :
ADD SETTINGS variable = value ... supprime d’abord toute entrée existante pour variable, puis insère la nouvelle. Il remplace donc la valeur ainsi que toutes les contraintes de ce paramètre. Tout MIN, MAX ou attribut de modification (READONLY/WRITABLE/CONST/CHANGEABLE_IN_READONLY) précédemment défini pour variable et que vous ne répétez pas est supprimé.
MODIFY SETTINGS variable = value ... fusionne champ par champ : il remplace uniquement les champs que vous spécifiez effectivement (la valeur, ou MIN, ou MAX, ou l’attribut de modification) et conserve les autres champs de ce paramètre en l’état.
En bref, utilisez MODIFY SETTINGS lorsque vous voulez seulement ajuster un aspect d’un paramètre (par exemple, uniquement la valeur, tout en conservant un MAX existant) ; utilisez ADD SETTINGS lorsque vous voulez redéfinir un paramètre à partir de zéro.
Créez un profil qui sera utilisé dans les exemples ci-dessous :
Ajoutez ou modifiez un paramètre sans changer les autres :
Comme MODIFY fusionne les champs un par un, le fait de ne modifier que la valeur d’un paramètre conserve les contraintes existantes :
Ajoutez un paramètre (sans supprimer les autres), en le redéfinissant entièrement s’il existe déjà :
Contrairement à MODIFY, le fait de réexécuter ADD en ne fournissant qu’une valeur supprime les contraintes précédemment définies pour ce paramètre :
Supprime un ou plusieurs paramètres nommés :
Supprimez tous les paramètres d’un seul coup :
Travailler avec des profils hérités
Ajoutez ou supprimez des profils parents (hérités) sans affecter les propres paramètres du profil :