On Fri, 2008-11-28 at 08:40 -0800, burb wrote:
[...]
> Code with cursor runs 100x faster than ORM code.

[...]
> this is 5x faster than work with ORM.
> 
> Where am I doing mistake in using Django ORM?

The only mistake is assuming the ORM should be as fast as that raw SQL.
The ORM is doing a lot more work (for a start, there's some transaction
handling in there, as well as creating a bunch of Python objects). If
you need to mass inserts, using the ORM is not going to be the fastest
way. That's fine -- Django's ORM isn't designed to ever be a 100%
replacement for interacting directly with the database in all
circumstances.

For creating a single object or a small group, using the ORM is fine,
since the extra overhead is negligible when compared to all the other
time consumed in a request/response cycle. If you subsequently need to
work with the objects as Python objects, using the ORM for creatinv even
a large number (using manual transaction control) *might* be worthwhile,
but I would time it if I was doing this. It might be better to do the
inserts using raw SQL and then use a single queryset to pull back the
results into Python, too.

So there's no problem here. You're just using the ORM to do a task it
isn't particularly designed for. It's not that common for a website to
need to do 100's of inserts all at once, for example. Perfectly
acceptable to use raw SQL when you need to do that.

Regards,
Malcolm


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

Reply via email to