I will comment that DBAPI has no begin() method.  when you use DBAPI
with autocommit=False, youre in a transaction - always.  SQLAlchemy
defines a "transaction" abstraction on top of this that "pretends" to
have a begin.  Its when theres *not* a "sqlalchemy" transaction going
on that youll see a COMMIT issued after every insert/update/delete;
otherwise youre transactional.

Anyway, if the email is talking about "batched inserts" of this type
being slow (i.e. non-ORM inserts):

table.insert().execute({params1}, {params2}, {params3}, ....)

thats because SA still does a lot of work on each batch of {params} to
check for defaults and also to process bind parameters.   We might
look into optimizing some of the redundant work which occurs within
this process in 0.4, however as long as people still want their
unicodes converted to utf-8, their datetimes converted to strings on
sqlite, their binaries correctly massaged, their Python side defaults
to fire off, this overhead will still be present for those types.

So, if you truly want DBAPI-speed inserts, use the raw connection:

engine.connect().connection.executemany("your statement", [{params1},
{params2}, {params3}, ...])



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to