juillet
2008
Oracle vient de mettre à jour son guide « de bonnes pratiques » pour le développement de drivers Oracle basés sur OCI.
Cette mise à jour est enrichi des nouveautés introduites dans OCI10 et OCI11.
Oracle Call Interface (OCI) est une API fournie par Oracle permettant aux développeurs de créer des applications en utilisant des appels C/C++ bas niveau afin d’accéder à des bases de données Oracle. OCI permet de contrôler tous les aspects de l’exécution d’ordres SQL tout en supportant les types de données, les conventions d’appel, la syntaxe et la sémantique des langages C, C++.
OCI est une API très puissante (la plus bas niveau fournie par Oracle) et constitue la base de la quasi totalité des drivers Oracle de plus haut niveau (JDBC, Python, Perl, ODP.NET, ADO.NET, PHP, Ruby…).
Ce guide présente succinctement les aspects suivants (accompagnés d’exemples):
- Initialisation d’OCI
- Contrôle des characters sets
- Gestion des erreurs
- Connections, pools de connections
- Sessions , pools de sessions
- Exécution de requêtes SQL
- Liaison de variables
- Récupération des données d’un select
- Gestion des évènements
- Modèles de programmation
Téléchargement du guide « Building High Performance Drivers For Oracle Database 11g : OCI tips and techniques »
euh, disons que a l’époque de oracle 8, le thin semblait être quand même plus performant que le OCI http://www.oreilly.com/catalog/jorajdbc/chapter/ch19.html
maintenant, il faudrait refaire ce bench avec les techno actuelles. oracle 10 et java 6
Sur les 4 drivers JDBC proposés par Oracle, il n’y a en qu’un qui n’est pas basé sur OCI, c’est effectivement le JDBC Thin Driver (Client Side).
Quelques remarques sur ce thin driver :
* Il existe depuis Oracle 8i
* Il n’est pas du tout plus performant que OCI
* Il ne propose pas toute la puissance de OCI
* Il est limité par rapport à OCI
* Il est dédié aux applis WEB, servlets, …
Pour une application client / serveur JAVA, le driver JDBC basé sur OCI reste le must.
De plus, jusqu’à Oracle 10g, le support du thin driver pour les LOB était chaotique, …
Les seuls avantages du thin driver sont :
* implémentation Java de la couche SQL*NET donc pas de client Oracle requis
* Léger et adaptés aux applis WEB
Pour les perfs, faisons un bench quand tu veux !
Euh, jdbc n’est peut être pas le meilleur des exemples, sachant que la version OCI du driver oracle est très peu utilisée depuis l’apparition d’un driver de type 4 (full java) appelé thin qui surpasse les perfs du driver OCI à tous les niveaux (ou presque).