2012-09-26 148 views
0

我有一個HQL查詢,像這樣:休眠 - HQL幫助優化查詢

Select 
... (around 40 items)... 
from 
ATable a 
left outer join a.subA SubA 
left outer join a.subB SubB 
left outer join a.Names Names 
left outer join Names.Addresses Addresses 
left outer join Names.Phones Phones 
left outer join a.Roles Roles 
where 
a.aType.someType in ('...') 
and (Names.id.FKey in('...') or Names.id.FKey is null) 
and upper(a.pin) like upper('some%') 
and upper(Names.lastName) like upper('Some%') 
order by a.pin asc 

出於某種原因出這個時間,但由Hibernate生成的查詢(從日誌中獲得)需要5秒,而使用蟾蜍執行。我是休眠的新手。我很感謝任何幫助優化此感謝。

+0

http://hungred.com/useful-information/ways-optimize-sql-queries/ – shevchyk

回答

0

有兩件事我可以建議是:

1]避免使用'IN'子句。 2]如果沒有必要,請避免使用訂單。

阿米特:)