OLEDB ou ODBC???

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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. 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)
      1. Modérateur
        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 ?
        1. 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
          1. Modérateur
            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.
            1. 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 !!!
              1. Modérateur
                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.
                1. 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)
                  1. Comment importer des données Oraclle vers une application windev 12
                    1. 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
                      1. 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