Existe-t-il un moyen de surveiller l’avancement de la création d’un index dans PostgreSQL? Je crée un index sur une grande table et j'aimerais voir à quelle vitesse cela se produit.
Y at-il un moyen de surveiller cela?
postgresql
index
Myahya
la source
la source
Réponses:
Selon la page Maintenance des index de Postgres Wiki , vous pouvez connaître l'état actuel de tous vos index avec:
La colonne
num_rows
indique le nombre de lignes couvertes par votre index etindex_size
augmentera au fur et à mesure de la construction de l'index.la source
Donc, il n’ya pas de bonne façon de le faire, mais si vous avez vraiment besoin de savoir ... calculez d’abord la quantité d’espace que devrait occuper l’index, en fonction de la taille des données * lignes + surcharge. Vous pouvez ensuite utiliser quelque chose comme pfiles ou pgtruss pour trouver les fichiers en cours d'écriture dans $ PGDATA; si vos index sont supérieurs à 1 Go, il s'agira d'une série de fichiers comme nnnnn.n, où le premier ensemble de n est cohérent et les n derniers incréments pour chaque fichier de Go. Une fois que vous savez combien de fichiers sont créés, vous pouvez regarder la croissance et déterminer si vous êtes sur le point de terminer. Estimation approximative, mais peut-être que ça aide.
la source
Non, même si vous le construisez en mode CONCURRENT. Bien que, dans le passé, je garde un œil sur la taille du fichier dans le répertoire de la base de données, cela n’est pas vraiment utile, car vous pouvez seulement deviner son importance.
la source
Cela sera possible dans la prochaine version de PostgreSQL 12 (devrait être publié le 3 octobre 2019).
Consultez la documentation de la vue pg_stat_progress_create_index et le billet de blog de depesz pour plus de détails.
la source