ODBC vs JDBC performance
J'ai une mission à l'utilisation de Java et de C avec base de données MySQL et de comparer les résultats et de donner les raisons pour lesquelles un tel résultat.
Pas. des Records de temps d'Exécution (ms) Enregistrements Java C 100 586 76 500 628 216 2000 733 697 5000 963 1056 10000 1469 2178
Comme vous pouvez le voir, avec moins de nombre d'enregistrements récupérés à partir de la base de données, C(ODBC) fait mieux. Mais comme le nombre de dossiers ont été augmentés, Java(JDBC) est sorti vainqueur.
La raison que j'ai pensé que peut-être les pilotes ODBC de charge beaucoup plus rapide que JDBC, mais la vitesse d'accès JDBC est mieux que ODBC, par conséquent, de tels résultats. Cependant, je ne suis pas en mesure de trouver un tel raisonnement, n'importe où.
Des suggestions s'il vous plaît ?
OriginalL'auteur user3213918 | 2014-02-15
Vous devez vous connecter pour publier un commentaire.
Les déclarations présentées par mathworks site web, ceux-ci semblent être généralement applicables.
Décider Entre ODBC et JDBC Drivers
Utiliser ODBC natif pour:
Utilisation de JDBC pour:
Astuce:
OriginalL'auteur Dennis Jaheruddin
Les points suivants peuvent vous aider:
Multithread: - JDBC est multi-thread - ODBC n'est pas multi-thread (au moins pas thread-safe)
Flexibilité: - ODBC est un windows spécifiques à la technologie JDBC est spécifique à Java, et est donc pris en charge sur ce système d'exploitation supporte Java
Puissance : vous pouvez tout faire avec JDBC que vous pouvez faire avec ODBC, sur n'importe quelle plateforme.
Langue: - ODBC est procédural et indépendante de la langue - JDBC est orienté objet et dépendant d'une langue (spécifique à java).
Lourde charge: - JDBC est plus rapide - ODBC est plus lent
ODBC limitation: c'est un relationnel de l'API et ne peut travailler qu'avec des types de données qui peuvent être exprimés en forme rectangulaire ou deux dimensions format.
(il ne fonctionnera pas avec des types de données comme Oracle spatial de type de données)
API: API JDBC est d'un naturel Interface Java et est construit sur ODBC, et, par conséquent, JDBC conserve une partie de la fonctionnalité de base ODBC
ODBC est multi-thread. Il y a des gestionnaires pour chaque état et il fonctionne dans de tels environnements sans problèmes.
ODBC fonctionne sur Linux. Consultez wikipedia pour plus d'histoire
Langue: - je utiliser JDBC avec Jython, et probablement il peut être utilisé par n'importe quelle langue qui fonctionne avec de la JVM.
Avez-vous une référence pour votre remarque sur la vitesse?
OriginalL'auteur soulemane moumie
Êtes-vous sûr d'en comparant les pilotes et non l'ensemble des environnements?
Je vois que pour ODBC vous utilisez un programme C. Essayez le pilote ODBC avec le même programme que vous utilisez pour tester JDBC mais maintenant utiliser JDBC-ODBC bridge (j'utilise souvent Jython pour de telles choses). Bien sûr pont ajoute un peu plus de temps. Rappelez-vous aussi que la JVM utilise JIT -- le plus longtemps que votre application fonctionne de la meilleure performance.
Le rendement est important, mais pour moi beaucoup plus important est la stabilité des pilotes. J'ai eu quelques problèmes avec différents pilotes ODBC et maintenant je préfère les pilotes JDBC. Mais même les pilotes ODBC peut travailler avec haute résistance multi-thread serveurs pour de nombreux mois.
OriginalL'auteur Michał Niklas