Optimiser une procédure d'insertion
Bonjour,
Voici ma procédure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
CREATE PROCEDURE enrichi_session_instance(_count integer, _max_i integer, _max_s integer)
LANGUAGE plpgsql
AS $$
BEGIN
_max_i = _max_i + 1;
FOR counter in 1.._count LOOP
UPDATE table1
SET
i_node = (
SELECT i_node
FROM table2
WHERE i_node = _max_i + counter
),
s_node = (
SELECT s_node
FROM table3
WHERE s_node = _max_s + counter
);
END LOOP;
END
$$; |
Cette procédure fonctionne sur les petites base mais la, j'ai 52 000 000 de champ. c'est la misère ...
Explication :
j'essaye de faire du bourrage de ma base pour grossir les tables.
j'ai fait grossir les 2 tables "table2 & table3" par une autre procédure puis je remplie la table1 avec les valeurs nouvellement créer.
_count , donne le nombre d'ajout à réaliser.
_max_i , donne le dernier élément de la table2 avant l'ajout des nouvelle ligne par la procédure précédente.
_max_s , donne le dernier élément de la table3 avant l'ajout des nouvelle ligne par la procédure précédente.
merci d'avance pour votre aide.