[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2448) Generate identical column aliases among cluster

Steve Ebersole (JIRA) noreply at atlassian.com
Thu Mar 1 11:15:31 EST 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2448?page=comments#action_26349 ] 

Steve Ebersole commented on HHH-2448:
-------------------------------------

Guys, it is not quite so easy.  In order for the DB to know that an incoming query only differs from any other query based on the defined return aliases, the DB would need to perform at least some degree of lexical analysis on that incoming query.  At the very least that lexical analysis would be needed to determine the overal structure and identify the tokens which are aliases.  So where is that fulcrum?  This is exactly why we do not cache criteria query plans, and our caching of HQL query plans has this same exact characteristic.

And really, is this a requirement for the underlying DB?  This is something Hibernate could be made to do.

However, this is obviously fairly low on my radar ;)

> Generate identical column aliases among cluster
> -----------------------------------------------
>
>          Key: HHH-2448
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2448
>      Project: Hibernate3
>         Type: Improvement

>   Components: query-hql, query-criteria
>     Versions: 3.2.2
>  Environment: Hibernate version: 3.2.2, 2.1.8
> Database: Oracle 9.2.0.8
>     Reporter: Loïc LEFEVRE
>  Attachments: report_1.txt, report_2.txt
>
>
> Among our weblogic cluster (12 instances), we can see that a query can have different column aliases.
> Although all seems correct, when regarding database reports like StatsPack or Spotlight we can see that because of these different aliases, the reports are wrong. Indeed, a resource consuming query can see its associated report properties (cpu usage, buffer gets, number of executions...) divided by the number of weblogic instances of our cluster (i.e. divided by 12) thus preventing us to pinpoint the queries to look at.
> On a 3 instances cluster, we can see this report:
> REPORT#1: one statement with a poor number of buffer gets/execution is reported splitted in 3, see the alias generated for column DTO.CREATION_DATE
> for example
> On a 4 instances cluster, we can see this report:
> REPORT#2: one statement responsible of the latch free/cache buffers chains wait events splitted in 4, note the column alias generated fordeffcashcy0_.BEST_EXPECTED_CY
> More than confusing the DBAs about the same query with n different "faces", our reports don't show us all the queries to look at: indeed, in our "Top 50 queries", a lot of them are duplicates! Also the memory required in the SGA to store the queries, the execution plan and so on is increased...
> Finally, although the column aliases can have up to 30 characters under Oracle, the limit is set to 10, why? 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira





More information about the hibernate-issues mailing list