Skip to main content
Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.

max_temporary_columns

Le nombre maximal de colonnes temporaires à conserver simultanément en RAM lors de l’exécution d’une requête, y compris les colonnes constantes. Si une requête génère, à la suite d’un calcul intermédiaire, plus de colonnes temporaires en mémoire que le nombre spécifié, une exception est levée.
Ce paramètre est utile pour éviter les requêtes trop complexes.
La valeur 0 signifie qu’il n’y a pas de limite.

max_temporary_data_on_disk_size_for_query

La quantité maximale de données, en octets, consommée sur disque par les fichiers temporaires pour l’ensemble des requêtes exécutées simultanément. Valeurs possibles :
  • Entier positif.
  • 0 — illimité (par défaut)

max_temporary_data_on_disk_size_for_user

La quantité maximale de données consommée par les fichiers temporaires sur disque, en octets, pour l’ensemble des requêtes utilisateur exécutées simultanément. Valeurs possibles :
  • Entier positif.
  • 0 — illimité (par défaut)

max_temporary_non_const_columns

Comme max_temporary_columns, il s’agit du nombre maximal de colonnes temporaires qui doivent être conservées simultanément en RAM pendant l’exécution d’une requête, sans compter les colonnes constantes.
Des colonnes constantes sont assez souvent générées lors de l’exécution d’une requête, mais elles ne nécessitent pratiquement aucune ressource de calcul.

max_temporary_table_memory_usage

Nombre maximal d’octets de mémoire que peut occuper une table temporaire utilisant le moteur Memory. Ce paramètre s’applique aux tables créées avec CREATE TEMPORARY TABLE, y compris avec le moteur de table temporaire par défaut (voir default_temporary_table_engine), et la mémoire est comptabilisée de la même manière que total_bytes dans system.tables. La limite est vérifiée à chaque INSERT dans la table (y compris CREATE TEMPORARY TABLE ... AS SELECT), pendant la réception des données puis de nouveau avant leur ajout : si la table risque de la dépasser, l’INSERT lève une exception avec le code d’erreur TOO_MANY_BYTES et les données ne sont pas ajoutées. Un INSERT qui écrit avec plusieurs threads (voir max_insert_threads) ajoute les données de chaque thread séparément ; les données de certains threads peuvent donc déjà avoir été ajoutées lorsqu’un autre lève une exception, mais la table ne dépasse jamais la limite. La valeur utilisée est celle des paramètres de la requête INSERT. La limite est également vérifiée après une mutation (ALTER TABLE ... UPDATE, MATERIALIZE COLUMN, etc.), avec la valeur issue des paramètres de la requête ALTER : si les données mutées risquent de la dépasser, la mutation lève une exception avec le code d’erreur TOO_MANY_BYTES et les données restent inchangées. Notez que le paramètre max_bytes_to_keep du moteur Memory fonctionne différemment : il évince les données les plus anciennes au lieu de rejeter les nouvelles. Si les deux paramètres sont définis, l’éviction s’applique en premier. Valeurs possibles :
  • Entier positif.
  • 0 — illimité (par défaut)

max_temporary_table_size_bytes_compressed

Taille maximale en octets des données sur disque (compressées) d’une table temporaire utilisant un moteur de la famille MergeTree. Elle s’applique aux tables créées avec CREATE TEMPORARY TABLE et est calculée de la même manière que total_bytes dans system.tables, c’est-à-dire comme la somme des tailles des parts actives. La limite est vérifiée lors de chaque INSERT dans la table (y compris CREATE TEMPORARY TABLE ... AS SELECT) avant la validation de chaque nouvelle part : si la table devait la dépasser, l’INSERT lève une exception avec le code d’erreur TOO_MANY_BYTES et la part n’est pas ajoutée. Les parts déjà validées par le même INSERT restent dans la table, comme pour toute autre erreur survenant lors d’un INSERT de plusieurs blocs. La valeur utilisée est celle des paramètres de la requête INSERT. Les opérations qui ajoutent des parts existantes à la table sont soumises à la même limite, la valeur étant celle des paramètres de leur requête : ATTACH PART, ATTACH PARTITION, ATTACH PARTITION ... FROM, REPLACE PARTITION ... FROM et CREATE TEMPORARY TABLE ... CLONE AS. Elles sont rejetées dans leur intégralité, sauf si elles n’augmentent pas la taille de la table. Pour ATTACH PARTITION, la vérification est effectuée une seule fois pour l’ensemble de ses parts avant leur rattachement ; des écritures exécutées simultanément peuvent donc entraîner un léger dépassement de la limite. Les parts écrites par les fusions et mutations en arrière-plan (ALTER TABLE ... UPDATE, MATERIALIZE COLUMN, etc.) ne sont pas vérifiées : une mutation qui augmente la taille des données peut donc entraîner un dépassement de la limite. Valeurs possibles :
  • Entier positif.
  • 0 — illimité (par défaut)

max_temporary_table_size_bytes_uncompressed

Taille maximale, en octets, des données décompressées d’une table temporaire utilisant un moteur de la famille MergeTree. Ce paramètre s’applique aux tables créées avec CREATE TEMPORARY TABLE, et la taille est calculée de la même manière que total_bytes_uncompressed dans system.tables. La limite est vérifiée de la même manière que pour max_temporary_table_size_bytes_compressed. Valeurs possibles :
  • Entier positif.
  • 0 — illimité (par défaut)

max_temporary_tables

Nombre maximal de tables temporaires pouvant exister simultanément dans une même session. Seules les tables créées avec CREATE TEMPORARY TABLE sont comptabilisées : les tables de données externes envoyées avec une requête ainsi que les tables temporaires créées en interne pour GLOBAL IN / GLOBAL JOIN ou pour les CTE matérialisées ne le sont pas. La limite est vérifiée à la création de chaque nouvelle table temporaire, et une exception avec le code d’erreur TOO_MANY_TABLES est levée si la session a déjà atteint ce nombre de tables temporaires. Remplacer une table temporaire existante avec CREATE OR REPLACE TEMPORARY TABLE n’augmente pas le nombre de tables et reste toujours autorisé. Valeurs possibles :
  • Entier positif.
  • 0 — illimité (par défaut)