Comparing DBI and Alternatives(Attempting the Impossible!)
Please note: This chart is correct only for some values of correct!
Notes:
Native API’s will generally offer the most power, e.g., Oracle OCI.
But take a lot of effort to learn and use.
Knowledge is rarely portable to other APIs
Generic application language interfaces: ODBC and JDBC.
Still lots of effort to learn
Knowledge is portable between databases
Power is dependant on quality of ODBC driver
Pre-compilers for C (where SQL is embedded in C and ‘precompiled’)
Simpler than a raw C API but typically less power. Hard to debug.
Command line access - Just type it in!
Generate SQL from scripts etc.
Not robust - hard to check for and respond to errors
TCL (oratcl, sybtcl) generally much slower. Binary data hard.
Win32::ODBC - a bottom-up approach - thin layer over raw ODBC calls. DBI is higher level but DBD::ODBC doesn’t yet have the same breadth of ODBC specific functionality. Recommended for existing users and people who need that degree of control.
DBI+DBD::ODBC can run twice as fast as Win32::ODBC.
Sybase - and other database specific perl extensions
Can gain some performance advantage if well written but loose out on the DBI extras: portable apps & knowledge, tools, subclasses etc.