簡體   English   中英

如何使休眠查詢更快

[英]How to make hibernate query faster

我目前正在執行一項任務,以提高操作的性能,而最慢的代碼部分是此休眠查詢:

.createQuery( "SELECT distinct p FROM CSParcel p " +
                              " WHERE p.bag.destination.loop.line.changeover.barcode = :barcode AND p.created > :limit " +
                              " AND (p.bag.destination.loop.courierLoop.id = :courierId OR p.bag.destination.loop.line.courier.id = :courierId)" +
                              " AND p.latestAction.actionType <> :doruceni" + " AND p.id NOT IN " +
                              "(SELECT pa.parcel.id " + "   FROM CSParcelAction pa " +
                              " WHERE pa.actionType = :predani AND pa.courier.id = :courierId AND pa.timestamp > :limit" +
                              ")", CSParcel.class )
                .setParameter( "barcode", changeoverBarcode.toUpperCase() )
                .setParameter( "limit", Time.setTime( 0, 0, 0, cal.getTime() ) )
                .setParameter( "courierId", courierId )
                .setParameter( "predani", CSParcelActionType.CHANGEOVER )
                .setParameter( "doruceni", CSParcelActionType.DELIVERY )
                .getResultList();

有什么方法可以使其運行更快?

謝謝你的每一個建議。

您可以使用一些工具進行監視,然后您將看到查詢的行為,通常在需要的地方添加一些索引就足夠了,如果您的數據庫有索引,則可以對使用的表進行某種維護。 這是一些信息

在此處輸入鏈接說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM