2017-05-18 3 views
3

Je charge environ 300 Go de données de ligne de contour dans une table Postgis. Pour accélérer le processus, j'ai lu qu'il est le plus rapide pour charger les données, puis créer un index. Le chargement des données n'a pris que 2 jours, mais maintenant j'attends l'index depuis environ 30 jours, et ce n'est pas encore prêt.Indexation lente de 300 Go Table Postgis

La requête était:

create index idx_contour_geom on contour.contour using gist(geom); 

Je l'ai couru dans pgadmin4, et la consommation de mémoire du Progran varie de 500 Mo à 100 Go ++ depuis.

Est-il normal d'utiliser autant de temps pour indexer une telle base de données?

Des conseils sur la façon d'accélérer le processus? Les données sont chargées à partir de cellules de 1x1 degré (lat/lon) (environ 30.000 cellules) donc aucune ligne n'a de boîte de délimitation supérieure à 1x1 degré, la plus grande partie devrait alors être beaucoup plus petite. Ils sont en projection EPSG: 4326 et les seuls attributs sont la hauteur et la géométrie (geom).

+0

veuillez donner une idée sur la structure contour.contour –

+1

Avez-vous défini 'maintenance_work_mem' à une valeur vraiment élevée de 1 Go? C'est le bouton principal pour accélérer la création d'index. Pourtant, le temps est surprenant. La CPU est-elle occupée ou est-ce que l'E/S est le goulot d'étranglement? –

+0

Je n'avais pas défini 'maintenance_work_mem'. C'est peut-être le problème. Je l'ai mis maintenant avec 'ALTER SYSTEM SET maintenance_work_mem = '1GB'; SELCT pg_reload_conf(); 'Je ne sais pas si je dois redémarrer mon indexation ou non pour que cela prenne effet, mais je vais le laisser fonctionner pendant le week-end et le redémarrer lundi s'il n'a pas aidé. Merci @LaurenzAlbe! - (Le processeur n'est pas très occupé, mais je suis surpris que la consommation de mémoire soit aussi élevée lorsque maintenance_work_mem est réglé très bas.) – Einar

Répondre

0

J'ai changé le maintenance_work_mem à 1 Go et j'ai arrêté toute autre écriture sur le disque (beaucoup d'opérations d'insertion ont été ajoutées à ANALYZE, ce qui a nécessité beaucoup de ressources). J'ai maintenant couru en 23min.