[hibernate-dev] Memory consumption

Steve Ebersole steve at hibernate.org
Thu May 17 09:02:08 EDT 2012


But just because you have 100 values in no way indicates how many rows 
will be returned.  And I personally know of no optimizers that make 
such an assumption; its a totally worthless assumption.

Nor is this "lack of de-dupping" any real issue that that I can think 
of.

On Thu 17 May 2012 07:16:06 AM CDT, Guillaume Smet wrote:
> Hi Steve,
>
> On the list again, my bad...
>
> On Thu, May 17, 2012 at 1:07 PM, Steve Ebersole<steve at hibernate.org>  wrote:
>> I am not following what you are saying about "reusing keys" and optimizers.
>>   Nor how it might lead to bad execution plans.  Can you elaborate on your
>> thoughts here?
>
> If you have a lot of (OR primaryKey=value) clauses with the same
> value, if the optimizer doesn't deduplicate the clauses, the
> statistics used by the planner to build the query plan might be wrong
> and lead to bad query plans.
>
> At least some of the optimizers out there don't remove identical
> values as it's a lot of cycles usually wasted for nothing as nobody
> writes query like that.
>
> Simplified example: if you have 100 (OR primaryKey=1) clauses, the
> planner might consider that you'll have 100 values returned which is
> plain wrong in this case. It's not important if the query is simple
> and you don't have a lot of joins but if you're in the case of a
> complex object hierarchy with a lot of left joins, it might lead to
> really bad execution plans.
>

--
steve at hibernate.org
http://hibernate.org


More information about the hibernate-dev mailing list