Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/08/2005, 17h58   #1
Membre actif
 
Inscription : juillet 2003
Messages : 257
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 257
Points : 162
Points : 162
Par défaut [ASE]probleme memoire: select dans une insert

bonjour,

je travaille sur sybase et j'essaye de creer une requete de genre:

insert into table1 select * from table2 where...;

le probleme est que la requete select m'envoi des centaines de mille de ligne. Alors Sybase stocke apparament ses donnes en memoire en attendant qu'il recupere toutes les lignes avant qu'il commence l'insertion! Ce qui fait que la memoire est saturée àpres un certain moment.

Est ce qu'il y a une solution de demander à Sybase d'inserer les resultats de la requete select dans table1 par paquet et qu'il attend pas toutes les donnees??!!

j'espere que j'etais claire dans ma question.
Merci d'avance
SegmentationFault est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2005, 15h02   #2
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Ceci n'a rien à voir avec la mémoire, mais avec les journaux.
Le insert into select est une opération standarde d'insert massifs : toute la transaction,pour qu'elle ait la possibilité d'être rollbackée en cas de problème, doit passer dans votre log.

Si vous voulez éviter cela, quelques options s'offrent à vous
1) passer par un select into (cela demande à ce que la table resultante n'existe pas avant le chargement)
2) faites un fast bcp out/in (cela demande que pa table resultante n'ait ni index, ni valeur par defaut, ni trigger )
3) réduisez le spectre de votre insert select et faites le passer en plusieurs fois (en ajoutant une condition)
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2005, 12h20   #3
Membre actif
 
Inscription : juillet 2003
Messages : 257
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 257
Points : 162
Points : 162
J'ai essayé la select into et ca fonctionne à merveille))
Merci beaucoup pour l'aide et pour vos explications
SegmentationFault est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h24.


 
 
 
 
Partenaires

Hébergement Web