On 5/3/2016 2:41 PM, Tim Chase wrote:
On 2016-05-03 13:00, DFS wrote:
On 5/3/2016 11:28 AM, Tim Chase wrote:
On 2016-05-03 00:24, DFS wrote:
One small comparison I was able to make was VBA vs python/pyodbc
to summarize an Access database.  Not quite a fair test, but
interesting nonetheless.

Access 2003 file
Access 2003 VBA code
Time: 0.18 seconds

same Access 2003 file
32-bit python 2.7.11 + 32-bit pyodbc 3.0.6
Time: 0.49 seconds

Curious whether you're forcing Access VBA to talk over ODBC or
whether Access is using native access/file-handling (and thus
bypassing the ODBC overhead)?

The latter, which is why I said "not quite a fair test".

Can you try the same tests, getting Access/VBA to use ODBC instead to
see how much overhead ODBC entails?

-tkc


Done.

I dropped a few extraneous tables from the database (was 114 tables):

Access 2003 .mdb file
2,009,164 rows
97 tables  (max row = 600288)
725 columns
  text:      389
  boolean:   4
  numeric:   261
  date-time: 69
  binary:    2
264 indexes (25 foreign keys)*
299,167,744 bytes on disk


1. DAO
   Time: 0.15 seconds

2. ADODB, Access ODBC driver, OpenSchema method**
   Time: 0.26 seconds

3. python, pyodbc, Access ODBC driver
   Time: 0.42 seconds




* despite being written by Microsoft, the Access ODBC driver doesn't
  support the ODBC SQLForeignKeys function, so the python code doesn't
  show a count of foreign keys

** the Access ODBC driver doesn't support the adSchemaIndexes or
   adSchemaForeignKeys query types, so I used DAO code to count
   indexes and foreign keys.






--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to