[DDC-2071] [GH-476] Replaced the setting of Ids to the whereInQuery with a more performant implementation Created: 12/Oct/12  Updated: 12/Nov/12  Resolved: 12/Nov/12

Status: Resolved
Project: Doctrine 2 - ORM
Component/s: None
Affects Version/s: None
Fix Version/s: 2.3.1
Security Level: All

Type: Bug Priority: Major
Reporter: Benjamin Eberlei Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None


This issue is created automatically through a Github pull request on behalf of HarmenM:

Url: https://github.com/doctrine/doctrine2/pull/476


While working with large datasets in combination with pagination (ie. a pagination window of 100 or more), the performance drastically decreased.

I tracked the problem down to the setting of the parameters. In the old implementation, the parameters are set individually. This pull request sets the parameter as an array to the Query and Walker.

Testing results (# of entities, original performance, improved performance):
32 0,036 0,033
64 0,043 0,037
128 0,065 0,043
256 0,133 0,057
512 0,360 0,088
1024 1,212 0,157
2048 4,462 0,332
4096 17,203 0,818

Generated at Wed Oct 14 00:21:39 EDT 2015 using JIRA 6.4.10#64025-sha1:5b8b74079161cd76a20ab66dda52747ee6701bd6.