Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 24/10/2011, 18h45   #1
Membre Expert
 
Avatar de edam
 
Inscription : décembre 2003
Messages : 1 716
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 716
Points : 1 783
Points : 1 783
Par défaut quelque note sur firebird

salut tout le monde, j'utilise FB 1.5
selon la faq firebird, exists est plus rapide que in, mais le contraire est vrais, bien sûr avec mes condition , la recherche est selon un champs FK entre 2 table,
Code :
1
2
3
SELECT DATE_OUVERTURE,REF_CABINET,CVILLE,POLICE AS n_abonnement,VICTIME AS ex_abonne,Montant 
                   FROM DOSSIERS A WHERE                     
                REF_CABINET IN  (SELECT FIRST 1 REF_CABINET FROM  TAXETELECOM D WHERE  A.REF_CABINET=D.REF_CABINET  AND D.IDNATURE =36)
la table TAXETELECOM à plus de 160000 ligne

autre chose, il y a une différence entre:
Citation:
SELECT A.Observe AS REMARQUE,A.MONTANT,A.REF_CABINET AS REF ,A.REF_TRIBUNAL,
B.IMMATRI AS IMMATRICULATION,B.POLICE,B.ASS,B.date_acc ,A.DATE_AUDIENCE AS Jugement
FROM DOSSIERS B
JOIN AUDIENCES A
ON B.REF_CABINET=A.REF_CABINET
Order by A.REF_CABINET,A.DATE_AUDIENCE
et
Citation:
SELECT A.Observe AS REMARQUE,A.MONTANT,A.REF_CABINET AS REF ,A.REF_TRIBUNAL,
B.IMMATRI AS IMMATRICULATION,B.POLICE,B.ASS,B.date_acc ,A.DATE_AUDIENCE AS Jugement
FROM AUDIENCES A
JOIN DOSSIERS B
ON B.REF_CABINET=A.REF_CABINET
Order by A.REF_CABINET,A.DATE_AUDIENCE
si si, l'ordre de trie dans la premiére requête ce fait seulement sur A.REF_CABINET!!!!!!!!!!!!!?????

aussi la rapidité d'exécution est différente même sans order by ,avec la table maître (DOSSIER) soit la première est plus rapide

[Edit]
mais le trie marche avec:
Citation:
SELECT A.Observe AS REMARQUE,A.MONTANT,A.REF_CABINET AS REF ,A.REF_TRIBUNAL,
B.IMMATRI AS IMMATRICULATION,B.POLICE,B.ASS,B.date_acc ,A.DATE_AUDIENCE AS Jugement
FROM DOSSIERS B JOIN AUDIENCES A ON B.REF_CABINET=A.REF_CABINET
Order by B.REF_CABINET,A.DATE_AUDIENCE
__________________
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
edam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 18h09   #2
Membre Expert
 
Avatar de edam
 
Inscription : décembre 2003
Messages : 1 716
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 716
Points : 1 783
Points : 1 783
pas de commentaire????????
__________________
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
edam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 10h41   #3
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Si si :

- Firebird 1.5 n'est plus maintenu et votre raisonnement ne marche probablement plus avec FB 2.x car de nombreuses améliorations et correction de bugs ont étés apportée depuis.

- De plus si vous voulez faire des remarques sur les performances il serait bon de donner la structure, et les index de vos tables, la population (nombre de ligne) des 2 tables etc.

Par curiosité, j ai créé 2 tables sous FB2.1 : Dossiers avec 60 000 enregistrements et TAXETELECOM avec 160 000 enregistrements, une FK sur DOSSIERS.Ref_cabinet et un index sur TAXETELECOM(ref_cabinet, idnature).

La requete avec le Exists me donne 313ms alors qu'avec IN 328ms soit environ 5% plus lent.
Barbibulle 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 12h04.


 
 
 
 
Partenaires

Hébergement Web