0
請問我該如何優化此查詢?使用IN子句優化Hibernate HQL SELECT
FROM OrderEntity WHERE id IN (SELECT DISTINCT orderId FROM ProductEntity
WHERE code = :myCode OR extCode = :myCode)
這種查詢是有大約百萬行
訂購1表太慢了... *產品
謝謝大家幫忙
編輯
在純SQL中,我會使用這個速度很快的查詢,但我不知道如何在HQL中形成它:
SELECT * FROM order o, (SELECT DISTINCT order_id FROM product WHERE code = 'ABC'
OR ext_code = 'ABC') p WHERE o.id = p.order_id
你嘗試數據庫性能的工具?這很可能不是HQL問題,而是一個「常規」數據庫性能問題。 (索引等) – 2013-04-18 07:13:44
請勿使用DISTINCT中的子句 –
realnumber3012
2013-04-18 07:28:41
FROM OrderEntity WHERE id IN(SELECT orderId FROM ProductEntity WHERE code =:myCode UNION ALL SELECT orderId FROM ProductEntity extCode =:myCode)嘗試此解決方案 – realnumber3012 2013-04-18 07:30:02