Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase

InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: utilisez vous des requêtes imbriquées avec interbase
oui 3 75,00%
non 1 25,00%
Votants: 4. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Vieux 08/07/2002, 09h53   #1
Invité régulier
 
Inscription : juillet 2002
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 12
Points : 9
Points : 9
Par défaut Requête imbriquée et indexes INTERBASE

Bonjour,


Interbase met un temps fou quand on lui soumet une requête du type :

SELECT * FROM A WHERE (A.PK IN (SELECT b.champ1 FROM B
WHERE b.champ2>0)) ORDER BY b.champ3;

J'ai mis un index sur chacun des champs cités et ça ne va pas mieux.
Comment faire des requêtes imbriquées sous interbase? (NB : Avec ACCESS, je n'ai pas rencontré ce problème mais je m'y prends certainement mal avec interbase ).

merci
vadim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2002, 14h39   #2
Invité de passage
 
Inscription : mars 2002
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 2
Points : 2
Points : 2
Je rencontre exactement le même problême. Néanmoins lorsque je peux utiliser une jointure inner join (par exemple, si "A.PK=b.champ1"), j'obtiens des délais de réponses satisfaisant.
Ludo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2002, 16h15   #3
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 24
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 24
Points : 14
Points : 14
ëssaye :

SELECT * FROM A WHERE EXISTS (SELECT b.champ1 FROM B
WHERE b.champ2>0 AND A.pk =b.champ1);

j'ai pas compris pourquoi t'utilisais un order by sur la table B!

Un exists est plus performant que IN, lorsque que dans cet exemple, exists trouve un enregistrement qui b.champ>0 et a.pk=b.champ1, le exists s'arrête, tandis que le IN continue jusqu'à la fin de la table B

Si il y a quelqu'un qui peut m'expliquer cette différence d'interruption de traitement, qu'il le dise
senke est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h37.


 
 
 
 
Partenaires

Hébergement Web