J'ai cree une procedure stockee qui recupere des donnees dans plusieurs
tables pour les inserer dans une autre table. Je passe par une table
temporaire que je rempli.
Cette table contient 28000 enregistrements en moyenne. Lorsque je fais un
simple select * de ma table temporaire, la procedure orend entre 2 et 3
secondes. Par contre la procedure avec l'insertion dans la table finale
prend un temps 12 minutes 49 secondes..
insert into MATABLE (val1, val2) (select val1, val2 from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle primaire et des indexsur
cette derniere table(MATABLE) .. Est ce que cela vient de la?? Y a t-il un
moyen de contourner le probleme. Cela me semble long de mettre 12 minutes
pour remplir 28000 enregistrement: 28000/720 = 38 enregistrements/secondes
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
insert into MATABLE (val1, val2) select val1, val2 from #temp
serait déjà mieux.
Quel sont les objets atenant à la table MATABLE : index, contraintes, triggers notamment.
Sans ces informations aucune aide ne sera convaincante.
A +
Cedric DEBARD a écrit:
Bonjour,
J'ai cree une procedure stockee qui recupere des donnees dans plusieurs tables pour les inserer dans une autre table. Je passe par une table temporaire que je rempli. Cette table contient 28000 enregistrements en moyenne. Lorsque je fais un simple select * de ma table temporaire, la procedure orend entre 2 et 3 secondes. Par contre la procedure avec l'insertion dans la table finale prend un temps 12 minutes 49 secondes.. insert into MATABLE (val1, val2) (select val1, val2 from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle primaire et des indexsur cette derniere table(MATABLE) .. Est ce que cela vient de la?? Y a t-il un moyen de contourner le probleme. Cela me semble long de mettre 12 minutes pour remplir 28000 enregistrement: 28000/720 = 38 enregistrements/secondes
-- Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
insert into MATABLE (val1, val2)
select val1, val2
from #temp
serait déjà mieux.
Quel sont les objets atenant à la table MATABLE : index, contraintes,
triggers notamment.
Sans ces informations aucune aide ne sera convaincante.
A +
Cedric DEBARD a écrit:
Bonjour,
J'ai cree une procedure stockee qui recupere des donnees dans plusieurs
tables pour les inserer dans une autre table. Je passe par une table
temporaire que je rempli.
Cette table contient 28000 enregistrements en moyenne. Lorsque je fais un
simple select * de ma table temporaire, la procedure orend entre 2 et 3
secondes. Par contre la procedure avec l'insertion dans la table finale
prend un temps 12 minutes 49 secondes..
insert into MATABLE (val1, val2) (select val1, val2 from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle primaire et des indexsur
cette derniere table(MATABLE) .. Est ce que cela vient de la?? Y a t-il un
moyen de contourner le probleme. Cela me semble long de mettre 12 minutes
pour remplir 28000 enregistrement: 28000/720 = 38 enregistrements/secondes
--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
insert into MATABLE (val1, val2) select val1, val2 from #temp
serait déjà mieux.
Quel sont les objets atenant à la table MATABLE : index, contraintes, triggers notamment.
Sans ces informations aucune aide ne sera convaincante.
A +
Cedric DEBARD a écrit:
Bonjour,
J'ai cree une procedure stockee qui recupere des donnees dans plusieurs tables pour les inserer dans une autre table. Je passe par une table temporaire que je rempli. Cette table contient 28000 enregistrements en moyenne. Lorsque je fais un simple select * de ma table temporaire, la procedure orend entre 2 et 3 secondes. Par contre la procedure avec l'insertion dans la table finale prend un temps 12 minutes 49 secondes.. insert into MATABLE (val1, val2) (select val1, val2 from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle primaire et des indexsur cette derniere table(MATABLE) .. Est ce que cela vient de la?? Y a t-il un moyen de contourner le probleme. Cela me semble long de mettre 12 minutes pour remplir 28000 enregistrement: 28000/720 = 38 enregistrements/secondes
-- Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
cedric DEBARD
C'est une table qui comporte a l'heure actuelle 2 millions d'enregistrements sur laquelle -j'ai une cle primaire qui est une chaine de charactere (concatenation de plusieurs champs) - j'ai cree 2 autres index sur des champs de type int
- je n'ai pas de contrainte d'integrite - pas de trigger
-----Message d'origine----- insert into MATABLE (val1, val2) select val1, val2 from #temp
serait déjà mieux.
Quel sont les objets atenant à la table MATABLE : index,
contraintes,
triggers notamment.
Sans ces informations aucune aide ne sera convaincante.
A +
Cedric DEBARD a écrit:
Bonjour,
J'ai cree une procedure stockee qui recupere des
donnees dans plusieurs
tables pour les inserer dans une autre table. Je passe
par une table
temporaire que je rempli. Cette table contient 28000 enregistrements en moyenne.
Lorsque je fais un
simple select * de ma table temporaire, la procedure
orend entre 2 et 3
secondes. Par contre la procedure avec l'insertion
dans la table finale
prend un temps 12 minutes 49 secondes.. insert into MATABLE (val1, val2) (select val1, val2
from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle
primaire et des indexsur
cette derniere table(MATABLE) .. Est ce que cela vient
de la?? Y a t-il un
moyen de contourner le probleme. Cela me semble long
de mettre 12 minutes
pour remplir 28000 enregistrement: 28000/720 = 38
enregistrements/secondes
-- Frédéric BROUARD, MVP Microsoft SQL Server. Langage
SQL / Delphi / web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
****************** mailto:
******************
.
C'est une table qui comporte a l'heure actuelle 2
millions d'enregistrements sur laquelle
-j'ai une cle primaire qui est une chaine de charactere
(concatenation de plusieurs champs)
- j'ai cree 2 autres index sur des champs de type int
- je n'ai pas de contrainte d'integrite
- pas de trigger
-----Message d'origine-----
insert into MATABLE (val1, val2)
select val1, val2
from #temp
serait déjà mieux.
Quel sont les objets atenant à la table MATABLE : index,
contraintes,
triggers notamment.
Sans ces informations aucune aide ne sera convaincante.
A +
Cedric DEBARD a écrit:
Bonjour,
J'ai cree une procedure stockee qui recupere des
donnees dans plusieurs
tables pour les inserer dans une autre table. Je passe
par une table
temporaire que je rempli.
Cette table contient 28000 enregistrements en moyenne.
Lorsque je fais un
simple select * de ma table temporaire, la procedure
orend entre 2 et 3
secondes. Par contre la procedure avec l'insertion
dans la table finale
prend un temps 12 minutes 49 secondes..
insert into MATABLE (val1, val2) (select val1, val2
from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle
primaire et des indexsur
cette derniere table(MATABLE) .. Est ce que cela vient
de la?? Y a t-il un
moyen de contourner le probleme. Cela me semble long
de mettre 12 minutes
pour remplir 28000 enregistrement: 28000/720 = 38
enregistrements/secondes
--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage
C'est une table qui comporte a l'heure actuelle 2 millions d'enregistrements sur laquelle -j'ai une cle primaire qui est une chaine de charactere (concatenation de plusieurs champs) - j'ai cree 2 autres index sur des champs de type int
- je n'ai pas de contrainte d'integrite - pas de trigger
-----Message d'origine----- insert into MATABLE (val1, val2) select val1, val2 from #temp
serait déjà mieux.
Quel sont les objets atenant à la table MATABLE : index,
contraintes,
triggers notamment.
Sans ces informations aucune aide ne sera convaincante.
A +
Cedric DEBARD a écrit:
Bonjour,
J'ai cree une procedure stockee qui recupere des
donnees dans plusieurs
tables pour les inserer dans une autre table. Je passe
par une table
temporaire que je rempli. Cette table contient 28000 enregistrements en moyenne.
Lorsque je fais un
simple select * de ma table temporaire, la procedure
orend entre 2 et 3
secondes. Par contre la procedure avec l'insertion
dans la table finale
prend un temps 12 minutes 49 secondes.. insert into MATABLE (val1, val2) (select val1, val2
from #temp)
Pourquoi est ce si long. Bien sur , j'ai une cle
primaire et des indexsur
cette derniere table(MATABLE) .. Est ce que cela vient
de la?? Y a t-il un
moyen de contourner le probleme. Cela me semble long
de mettre 12 minutes
pour remplir 28000 enregistrement: 28000/720 = 38
enregistrements/secondes
-- Frédéric BROUARD, MVP Microsoft SQL Server. Langage