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

materialize_statistics_on_insert

Si cette option est activée, les INSERT génèrent et insèrent des statistiques. Si elle est désactivée, les statistiques sont générées et stockées lors des fusions ou par un MATERIALIZE STATISTICS explicite. Seules les tables dont la taille actuelle, augmentée de la taille du bloc en cours d’écriture, ne dépasse pas materialize_statistics_on_insert_max_table_size sont concernées.

materialize_statistics_on_insert_max_table_size

Construit et stocke les statistiques de colonnes lors d’un INSERT (voir materialize_statistics_on_insert) uniquement pour les tables dont la taille totale actuelle des parties actives sur disque (compressée, en octets), augmentée de la taille en mémoire non compressée du bloc en cours d’écriture, ne dépasse pas cette valeur. Cette règle s’applique à chaque bloc écrit, et non à chaque INSERT : un même INSERT est divisé en un bloc par partition (et, pour les inserts en streaming, en plusieurs blocs), et chacun est vérifié par rapport à la taille des parties déjà actives, car les parties de l’INSERT en cours ne sont pas encore actives. Un chargement en masse unique dans une table vide peut donc générer des statistiques pour toutes ses parties, même si leur taille totale dépasse le seuil ; la limite s’applique aux inserts suivants. L’utilisation de la taille non compressée du bloc (sa taille compressée est inconnue avant l’écriture de la partie) rend la vérification volontairement prudente, d’au plus un bloc. Cela permet de maintenir à jour les statistiques des petites tables de dimensions, ce qui est important pour le réordonnancement des jointures basé sur les coûts, tout en évitant la surcharge liée à chaque insert dans les grandes tables de faits (leurs statistiques sont plutôt générées lors des fusions). 0 signifie qu’il n’y a pas de limite de taille.
Dernière modification le 14 août 2026