Nous avons une grande table, sur laquelle nous devons faire une COPIE PROFONDE. Comme nous n'avons pas assez d'espace disque vide pour le faire en une seule fois, j'ai essayé de le faire par lots. Mais les lots semblent s'exécuter très lentement.
Je fonctionne de la manière suivante :
INSERT INTO new_table
SELECT * FROM old_table
WHERE creation_date between '2018-01-01' AND '2018-02-01'
Même si la requête renvoie un petit nombre de lignes ~ 1K
SELECT * FROM old_table
WHERE creation_date between '2018-01-01' AND '2018-02-01'
-
En
INSERT
Les requêtes durent environ 50 minutes. -
En
old_table
a ~286M lignes et ~400 colonnes -
creation_date
est l'une desSORTKEY
s
Expliquer le plan ressemble à :
XN Seq Scan on old_table (cost=0.00..4543811.52 rows=178152 width=136883)
Filter: ((creation_date <= '2018-02-01'::date) AND (creation_date >= '2018 01-01'::date))
Ma question est la suivante :
- Quelle peut être la raison de
INSERT
query pour prendre autant de temps ?