On Sep 21, 2007, at 7:45 PM, Giulio Cesare Solaroli wrote:


[18:09:40] DELETE FROM clipperz.RCRVRS WHERE ID_RCRVRS = ?
[18:09:40] [batch bind: 968]
[18:09:40] [batch bind: 875]
[......]
[18:09:40] [batch bind: 1177]
[18:09:40] [batch bind: 2792]
[18:11:54] === updated 68 rows.

In this case, to delete just 68 rows it took more than two minutes,
but I don't know if this time is spent somewhere inside the cayenne
code, or if this is simply the time it took PostgreSQL to "physically"
delete the rows.

Initially I suspected performance problems with faulting the relationships, but if the delete itself is so slow, it points to PostgreSQL as the bottleneck as Ari said (coincidentally the query above is a BatchDeleteQuery generated by Cayenne). If it takes that long, something is wrong with the DB. I second a suggestion to try installing PostgreSQL on Mac and it without Parallels.


The SQL I am expecting Cayenne to generate would look like this:

delete from user_detail where id_user = <id of the user I want to delete>;

Cayenne 3.0M2 (yet unreleased) supports such functionality via an EJBQL query, but maybe you don't need to do direct DB deletion just yet.

Andrus

Reply via email to