मुझे हाल ही में एक अजीब घटना थी। एक गिनती प्राप्त करना था जिसमें विभिन्न WHERE स्थितियों के साथ एकाधिक तालिकाओं में शामिल होना शामिल था। मैंने पहले हाइबरनेट के मानदंड एपीआई के साथ क्वेरी लागू की। यह सही ढंग से अनुरोधित तैयार SQL कथन बनाया गया लेकिन धीमा था। एचक्यूएल का उपयोग कर पूरी क्वेरी फिर से लागू की। ऐसा करने के लिए बल्कि बुरा था, लेकिन परिणाम मानदंड एपीआई के मुकाबले बहुत तेजी से प्रदर्शन किया। क्या किसी को उस व्यवहार का कारण पता है? मुझे लगता है कि मानदंड और एचक्यूएल ढांचे को उसी कोड बेस का उपयोग एसक्यूएल में बदलने के लिए किया जाता है।हाइबरनेट क्वेरी बनाम मानदंड प्रदर्शन
select count(*) from R r where r.ISREPLACEDBY = 0
and r.STATUS='OK' and r.A = ?
and r.C in
(select distinct RC from CX cx where cx.FROMDATE >= ? and cx.FROMDATE <=?)
पढ़ सकते हैं आप HQL और मानदंड प्रश्नों दिखा सकते हैं? –
क्वेरी पैरामीटर पर निर्भर करता है। सरल स्थिरीकरणों में से एक निम्न की तरह है: आर आर से गणना करें (*) जहां r.ISREPLACEDBY = 0 और r.STATUS = 'OK' और r.A =? और आरसी में (सीएक्स सीएक्स से अलग आरसी चुनें जहां cx.FROMDATE> =? और cx.FROMDATE <=?) – bertolami