Type: | integer |
Défaut: | 150000 |
Min: | 0 |
Max: | 2147483647 |
Contexte: | user |
Redémarrer: | false |
Depuis: | 9.6 |
Obsolète: | 10 |
Quand le nombre de lignes à trier est plus petit que ce nombre, un tri produira sa première sortie en utilisant l'algorithme replacement selection plutôt que quicksort. Ceci se révèle utile pour les environnements contraints en mémoire où de nombreuses lignes à trier ont une forte corrélation pour leur emplacement physique/logique. Notez que cela n'inclut pas les lignes en entrée avec une corrélation inverse. Il est possible que l'algorithme de replacement selection génère une longue sélection qui ne requiert aucune fusion alors que l'utilisation de la stratégie par défaut résulterait en de nombreuses exécutions qu'il faudrait fusionner pour produire une sortie finale triée.
La valeur par défaut est de 150000 lignes. Notez que les valeurs hautes ne sont habituellement pas très efficaces, et pourraient même se révéler contre-productive car la queue de priorité est sensible à la taille du cache CPU disponible alors que la stratégie par défaut effectue des exécutions en utilisant un algorithme inconscient du cache. Cette propriété permet à la stratégie de tri par défaut d'avoir une utilisation efficache du cache CPU disponible, de manière automatique et transparente.
Configurer maintenance_work_mem à sa valeur par défaut empêche généralement les tris externes pour les commandes utilitaires (par exemple, les tris utilisés par CREATE INDEX pour construire des index B-Tree) d'utiliser le tri replacement selection sauf si les lignes en entrée sont très volumineuses.