OLEDB ou ODBC???

Fermé
stef - 19 mai 2005 à 17:58
sabrinayasmine15 Messages postés 3 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 28 août 2008 - 23 août 2008 à 16:35
Bonjour,

Dans tous mes progs, lorsque j'utilise ODBC, tout fonctionne correctement; lorsque j'utilise OLEDB, la connnection est super lente (30 sec pour une requete!!!!)

J'ai fait des test connection en VB sur SQL server ou connection via composant Delphi, c'est le même problème.

Savez-vous comment fonctionne OLEDB? Se connecte-t-il à un composant? une dll? un service windows??? Quelle différence avec ODBC?

Merci,

Stef

12 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
20 mai 2005 à 09:24
c'est peut-etre un probleme réseau ???

Non il n'y a pas de raisons.
J'avais travaillé sur un programme en Delphi utilisant le composant natif MS SQL Server, et les temps de réponse étaient excellents (sur un serveur SQL distant).

Je ne pense pas que ça soit un problème réseau, sinon tu aurais aussi des problème avec ODBC.

Vérifie que le client et le serveur utilisent bien a même version (7/2000 ?).

Applique aussi les services packs SQL Server sur le serveur et sur le client.
(on peutl les télécharger sur le site de Microsoft)
1
sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
19 mai 2005 à 18:07
salut
moi je te conseille d'utiliser ADO (ODBC n'est pas un remplaçant mais une methode d'accès au "driver" base de donnees)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
19 mai 2005 à 18:17
Je confirme ce que dit sam3000.
ADO et ADO.Net sont beaucoup plus rapides qu'ODBC.

Par contre, c'est bizarre que OLEDB soit plus lent qu'ODBC.
Le composant Delphi natif MS SQL Server devrait également être beaucoup plus rapide qu'ODBC.
Ce n'est pas logique du tout.


Quel mode d'authentification utilises-tu ?
NTLM (intégré Windows) ou bien le traditionnel login/mot de passe ?

Les 30 secondes, c'est pour le temps de connexion ou bien le temps d'exécution de la requête ?
0
les 30 secondes, c'est le temps d'execution d'une requete avec OLEDB; c'est completement inexploitable!!!
(Avec ODBC, c'est 0,2 sec; ce qui est deja pas mal...)

POur le mode d'identification; c'est login/mdp

J'ai tout essayé :
j'ai éxécuté le code sur plusieurs machines et dans plusieurs languages; c'est toujours pareil....

c'est peut-etre un probleme réseau ???(le prog n'est pas sur la même machine que SQL Server)

stef
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tu verifie comment les versions???
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
20 mai 2005 à 10:05
Lance le "Client Network Utility", onglets "DB-Library options" et "Network libraries".

Il est très important que le serveur et le client aient les mêmes versions.
J'ai eu des comportant vraiment très bizarres quand les versions étaient différentes.

Applique bien tous les derniers service pack de SQL server sur les deux.
0
le pack SQL est le dernier.
J'ai exécuté le client et le server sur la meme machine-> a priori pas de problème de version...
j'ai trouvé Client Network Utility", onglets "DB-Library options" sur le client : version 8.00.194; mais pour le serveur, ou est la version ????

D'autre part, si je me connecte à mon server en utilisant l'IP 127.0.0.1, cela fonctionne normalement, mais pas lorsque je mets la véritable IP.

J'ai peut-etre trouvé un indice :
si je fais un ping IP, tout est normal; si je fais ping -a nom_de_machine, il repond au bout de plusieurs secondes...


J'ai pas mal de prog utilisant cette connexion; il faut a tout prix que je trouve le problème.


Merci !!!
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
20 mai 2005 à 11:05
oui donc c'est plutôt un problème réseau.

Sans doute un problème de résolution de noms.
Qu'est-ce que vous utilisez pour la résolution des noms ?
workgroup, serveur de domaine, ActiveDirectory, DNS, autre ?

A mon avis c'est de là que vient le problème.


Workaround rapide:
mettre adresse IP + nom du serveur dans le fichier hosts du client.
0
effectivement avec l'IP+Nom du server dans le fichier hosts, tout est OK!


Il y a deux Serveurs de domaines (dont un seul est maitre) avec DNS + Active Directory + DHCP.
Cependant, le serveur n'a pas l'air saturé (ni au niveau du processeur/RAM ni au niveau de l'acces réseau)
0
Vincent de Paul
30 mai 2008 à 12:59
Comment importer des données Oraclle vers une application windev 12
0
bonjour a tous j'ai peut etre le meme pb
je travail avec windev 11 et je doit ecrire dans une bd saari compta
pendat toute la periode de test sur la machine l'execution des requetes se fesaient plutot bien maintenant que je veux tester sur le serveur sur le quel le fichier de bd se trouve les requetes sont devenues tres tres lentes
0
sabrinayasmine15 Messages postés 3 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 28 août 2008
23 août 2008 à 16:35
Bonjour tous le monde

svp quelq'un pourrai t'il me donner la syntaxe exacte pour me connecter a la bdd sql server 2005 à partir de vs2008
c#

Merci d'avance
0