If you are using cascadeOnDelete option and explicit deletion of one object causes cascaded delete on several others, you may expect slower execution:
Note that in the first part of the test each object deletion only includes a single object. Therefore, when we delete a 1000 objects the amount of the objects in the database is 1000 less. In the second part each object deletion will trigger deletion of all field objects (cascadeOnDelete option), therefore the amount of objects deleted from the database can be anywhere between 1000 (only lowest level objects) and 3000(all top level objects with their field objects).
The results from the test machine:
Delete test with objects of different depth
Deleting 1000 of 10000 objects with 1 levels of embedded objects:
Store 10000 objects: 528ms
Amount of objects left: 10000
Deleted 1000 objects in: 197 ms.
Amount of objects left: 9000
Deleting 1000 of 10000 objects with 3 levels of embedded objects:
Store 30000 objects: 1693ms
Amount of objects left: 39000
Deleted 1000 objects in: 340 ms.
Amount of objects left: 36978