Rechercher : dans
Par :

ODBC lent??????

Dernière réponse le 27 jun 2002 à 19:50:56 Librett, le 27 jun 2002 à 15:13:48 
 Signaler ce message aux modérateurs

Bonjour!

Je suis entrain de batir une petite BD avec access et pour l'interface je le fait avec les MFC. J'utilise un lien ODBC et je trouve que c'est tres lent quand les requetes deviennent grosses. Est-ce normal???

Merci!

Meilleures réponses pour « ODBC lent?????? » dans :
ODBC (Open DataBase Connectivity) Voir Qu'appelle-t-on ODBC? ODBC signifie Open DataBase Connectivity. Il s'agit d'un format défini par Microsoft permettant la communication entre des clients bases de données fonctionnant sous Windows et les SGBD du marché. Le gestionnaire ODBC est...
Création d'un DSN avec ODBC Voir Qu'est-ce qu'un DSN ? ODBC permet de relier un client à une base de données en déclarant une source de données (correspondant généralement à une base de données) dans le gestionnaire ODBC (communément appelé administrateur de source de données...
Le réseau Wifi est lent Voir Si vous trouvez votre réseau WiFi particulièrement lent, il existe des astuces permettant parfois de le rendre plus rapide ! Améliorer la portée Certains matériaux tels que le papier ou l'eau empêchent la propagation des ondes radio. Parfois le...
Télécharger DTM ODBC Manager VoirSi vous êtes développeur ou administrateur de base de données et que vous deviez transférer des définitions de sources de données entre les ordinateurs, il vous faut rapidement un outil puissant. DTM ODBC Manager est un gestionnaire de données ODBC....

1

teebo, le 27 jun 2002 à 15:40:13

Ba ca depend de ta requete, du nombre de tables impliquees, de la conception de ta base, de plein de choses en fait...

@,@
\__/

Répondre à teebo

2

Librett, le 27 jun 2002 à 15:59:34

Ouin.... mais ma requete utilise pe 20 tables mais sur le nombre il y a des tables qui reviennent. Mais je doute que ma requete soit une des plus complique!
Si je ne met pas de critere a aucun champ dans ma requete et que je l'execute, cela peut prendre presque 5 minutes avant dafficher mes enregistrements. Par contre si je met * comme critere a un des champs qui est le numero de chaque enregistrement, et bien la requete s'execute instantanement.
Jusque la tout va bien(avec un *).....Lorsque je run mon programme en c++ et quil est rendu a ouvrir la requete et bien si l'asterix est la bien la requete est vide et la tout le reste ne fonctionne plus. Par contre si je l'enleve dans ma requete et bien la cest TRES long....
Cest pe pas le lien ODBC mais c'est curieux....

Répondre à Librett

3

teebo, le 27 jun 2002 à 16:12:02

Donne ta requete parce que la comme ca, je peux rien dire, amis de maniere generale, il faut toujours place la cle de la table dans la recherche, ca accelere grandement les choses...de meme il ne faiut mettre que les champs necessaire...

@,@
\__/

Répondre à teebo

4

Librett, le 27 jun 2002 à 16:47:14

Tu veux voir ma requete?

Répondre à Librett

5

teebo, le 27 jun 2002 à 17:00:21

Ba si c'est pas indiscret...
Ca permettrait d'avoir du concret...

@,@
\__/

Répondre à teebo

6

Librett, le 27 jun 2002 à 17:03:21

Non ya pas de probleme mais tu veux avoir ca comment?

Répondre à Librett

7

teebo, le 27 jun 2002 à 17:13:40

Ba sous forme de texte ici avec un petit copie colle...
Elle est si longue que ca?

@,@
\__/

Répondre à teebo

8

Librett, le 27 jun 2002 à 17:16:01

En SQL......Eurkk!
C'est pas beau a voir.....je vais faire un test!
mais je t'aurai prevenu!:o)

Répondre à Librett

9

Librett, le 27 jun 2002 à 17:17:10

SELECT Planches.Numeroplanche, Grade.Grade, Longueur.TagLongueur, Grade_1.Grade, Longueur_1.TagLongueur, Grade_2.Grade, Longueur_2.TagLongueur, Grade_3.Grade, Longueur_3.TagLongueur, Grade_4.Grade, Longueur_4.TagLongueur, Grade_5.Grade, Longueur_5.TagLongueur, Grade_6.Grade, Longueur_6.TagLongueur, Grade_7.Grade, Longueur_7.TagLongueur, [Defauts visuel].Defauts, Dimension.DimTAG, Client.Societe, Planches.LongueurReelles, Planches.LongueurLue, Planches.IDPlanche
FROM (((((((((((((((((([Defauts visuel] INNER JOIN Planches ON [Defauts visuel].IDDefaut = Planches.Iddefaut) INNER JOIN Grade ON (Planches.[Solution classification] = Grade.IDGrade) AND (Planches.[Solution classification] = Grade.IDGrade)) INNER JOIN Grade AS Grade_1 ON Planches.[Solution classificationCIT] = Grade_1.IDGrade) INNER JOIN Grade AS Grade_2 ON Planches.[Solution CQ] = Grade_2.IDGrade) INNER JOIN Grade AS Grade_3 ON Planches.[Solution CQCIT] = Grade_3.IDGrade) INNER JOIN Grade AS Grade_4 ON Planches.[Solution LGO] = Grade_4.IDGrade) INNER JOIN Grade AS Grade_5 ON Planches.[Solution LGOCIT] = Grade_5.IDGrade) INNER JOIN Grade AS Grade_6 ON Planches.[Solution consensus] = Grade_6.IDGrade) INNER JOIN Grade AS Grade_7 ON Planches.[Solution consensusCIT] = Grade_7.IDGrade) INNER JOIN Longueur ON Planches.LongClass = Longueur.IDLongueur) INNER JOIN Longueur AS Longueur_1 ON Planches.LongClassCIT = Longueur_1.IDLongueur) INNER JOIN Longueur AS Longueur_2 ON Planches.LongCQ = Longueur_2.IDLongueur) INNER JOIN Longueur AS Longueur_3 ON Planches.LongCQCIT = Longueur_3.IDLongueur) INNER JOIN Longueur AS Longueur_4 ON Planches.LongLGO = Longueur_4.IDLongueur) INNER JOIN Longueur AS Longueur_5 ON Planches.LongLGOCIT = Longueur_5.IDLongueur) INNER JOIN Longueur AS Longueur_6 ON Planches.LongCon = Longueur_6.IDLongueur) INNER JOIN Longueur AS Longueur_7 ON Planches.LongConCIT = Longueur_7.IDLongueur) INNER JOIN Dimension ON Planches.dimension = Dimension.IDDim) INNER JOIN Client ON Planches.NoClient = Client.[No];



je ne suis pas convaincu que tu vas ty retrouver.....

Répondre à Librett

10

teebo, le 27 jun 2002 à 17:27:02

T'inquietes, j'ai l'habitude ;-)
Tes tables longueurs,grades et planches elles sont grosses comment (en gros...) et quelle est leur cle?

Ton histoire d'* tu la mets ou?
Ca c'est la requete qui marche, mais qui prend du teps su j'ai bien compris...


@,@
\__/

Répondre à teebo

11

Librett, le 27 jun 2002 à 17:50:24

Cest bien ca...si je l'execute cest tres long a moin que j'ajoute ca a la fin WHERE (((Planches.Numeroplanche) Like "*".......alors la c instantanne!!!!
Les tables:
Longueur
(cle)IDLongueur Longueur TagLongueur
1 0 Nil
2 4 4 pi.
3 5 5 pi.
4 6 6 pi.
5 8 8 pi.
6 10 10 pi.
7 12 12 pi.
8 14 14 pi.
9 16 16 pi.
10 18 18 pi.
11 20 20 pi.
Grade
(cle)IDGrade Grade
1 msr 2700
2 msr 2100
3 msr 1650
4 J Grade
5 No 1
6 No 2
7 No 3
8 No 4
9 Econo
10 Stud
11 Aucun
et Planches contient enviroon 900 enregistrement de 27 champs dont trois forme la cle soit Numeroplanche, dimension et NoClient

Répondre à Librett

12

teebo, le 27 jun 2002 à 19:06:30

Tu as essaye ta requete direct en Access, j'ai le sentiument qu'elle prendrait deja du temps...mais sinon je pense que ca vient de ODBC, il n'y a rien qui me choc, je dirai plutot que toute ta base a l'air bien foutue...
@,@
\__/

Répondre à teebo

13

 Librett, le 27 jun 2002 à 19:50:56

On en arrive a la meme conclusion....c'est triste mais je vais devoir vivre avec ou changer pour un autre sgbd et ne pas passer par ODBC.
Je te remerci pour ton temps!

Répondre à Librett