|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2004 Messages : 46 ![]() |
INTERBASE ne semble pas accepter la syntaxe suivante ( empruntée au cours de SQLPro ):
Code :
Comment contourner cet obstacle ( syntaxique ? ) pour supprimer les rangées d'une table existant dans une autre table ? Merci de vos conseils |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Il faut le faire avec une requete corellée.
Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre confirmé
![]() |
Salam,
Je crois que cette requête fait l'affaire aussi: Code :
|
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2004 Messages : 46 ![]() |
Les deux fonctionnent parfaitement.
Seul problème, mais de taille : la lenteur ! J'ai pensé arranger les choses en rajoutant des index sur les colonnes adéquates, sans grand résultat probant. Mon but est d'insérer de nouvelles lignes et de remplacer ( ou de mettre à jour ) les lignes pré-existantes ( de même valeur d'index ) d'une table d'un millier de ligne dans une table qui en fait environ 120 000. Merci encore de vos irremplaçables conseils. |
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : janvier 2004 Messages : 2 123 ![]() |
Salut,
Citation:
Ainsi, les ressources nécessaire à la suppression sont moins important et la reconstruction des index/FK/PK permet de les avoir optimiser sur le dernier 'état' des données. A+ |
|
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Or je ne pense pas qu'il veuille supprimer la majorité des enregistrements? Il faut en effet créer 2 indexes le premier sur la table T_PROSPECT (PRP_NOM, PRP_PRENOM) et le second sur la table T_client (CLI_NOM, CLI_PRENOM). A moins que pour la table prospect vous n'ayez construit un foreign key sur nom, prenom dans ce cas l'indexe exise déjà. Ensuite une autre remarque plus général, si dans la table prospect vous aviez plutot mis une colonne FK_ID_CLI (représentant la clé primaire de la table client) de type integer à la place de NOM et PRENOM, ça serait certainement plus performant, car un integer est plus petit en taille et donc prend moins de place et les recherche/comparaison sont plus rapide et facile à faire sur un integer que sur des chaines. Mais bon cette remarque est valable pour les gros volumes. Qu'appelez vous lenteur du traitement ? Combien d'enregistrements dans votre table client, votre table prospect et combiens sont concernés par la supression ? |
|
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
attention que les index sont inutilisés dans les "sous-requêtes" et qu'il est infiniment plus rapide de construire une procédure stockée qui se charge de détruire les enregistrements
un exemple: Code :
attention toutefois aux index qui sont désorganisés en cas de "delete" massif, dans ce cas, le plus sage et de les désactivés avant l'opération et de les réactiver après, enfin, si cela est possible. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com