PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 23/10/2022 18:26:34

mse10
Membre

performance requête update

Bonjour,
je dispose de deux table fact (30 million lignes) et cmd (5 million ligne)

je veux updater fact par une valeur de cmd comme suite :

update fact set num_id =cmd_id from cmd where num_fact=num_cmd

j'ai un index au niveau fact sur num_fact et un index au niveau  cmd sur num_cmd

mais en exécutant la requête jattends plus de 2 heures sans fin

Merci pour votre aide

Hors ligne

#2 23/10/2022 19:06:17

rjuju
Administrateur

Re : performance requête update

Bonjour,



Quel plan obtenez-vous avec un EXPLAIN de la requête?  Y a-t-il des verrous non accordés dans pg_locks lorsque la requête est exécutée ?

Hors ligne

#3 26/10/2022 01:04:01

mse10
Membre

Re : performance requête update

"Update on fact  (cost=1398076.01..1551054.73 rows=0 width=0)"
"  ->  Hash Join  (cost=1398076.01..1551054.73 rows=6318235 width=20)"
"        Hash Cond: (cmd.num_cmd = (fact.num_fact)::text)"
"        ->  Seq Scan on cmd  (cost=0.00..136393.35 rows=6318235 width=23)"
"        ->  Hash  (cost=1151586.56..1151586.56 rows=19719156 width=15)"
"              ->  Seq Scan on fact  (cost=0.00..1151586.56 rows=19719156 width=15)"

Hors ligne

#4 26/10/2022 10:17:56

mse10
Membre

Re : performance requête update

par contre ci je fait

select * from cmd,fact where num_fact=num_cmd limit 100

il passe bien par les index

"Limit  (cost=0.99..47.38 rows=100 width=586)"
"  ->  Merge Join  (cost=0.99..2930456.81 rows=6318235 width=586)"
"        Merge Cond: (cmd.num_cmd = (fact.num_fact)::text)"
"        ->  Index Scan using idx_num_cmd on cmd  (cost=0.43..484425.81 rows=6318235 width=61)"
"        ->  Index Scan using idx_num_fact on fact  (cost=0.56..4331328.67 rows=19837009 width=525)"

Merci pour votre aide

Dernière modification par mse10 (26/10/2022 20:17:04)

Hors ligne

#5 05/11/2022 12:49:03

mse10
Membre

Re : performance requête update

Bonjour ,
je suis toujours bloqué qui peux m'aider

Hors ligne

Pied de page des forums