है, मेरे पास तालिका MYTABLE
है जिसमें लगभग 25 कॉलम हैं, जिनमें से दो USERID (integer)
और USERDATETIME (dateTime)
हैं।एसक्यूएल अधिकतम() जहां एक खंड और समूह के साथ एसक्यूएल अधिकतम (
मेरे पास इन दो स्तंभों पर इस तालिका पर एक सूचकांक है, USERID
के बाद पहला कॉलम USERDATETIME
है।
मैं प्रत्येक USERID के लिए अधिकतम USERDATETIME प्राप्त करना चाहता हूं। तो:
select USERID,MAX(USERDATETIME)
from MYTABLE WHERE USERDATETIME < '2015-10-11'
GROUP BY USERID
मैं अनुकूलक अद्वितीय USERID
रों की संख्या के बराबर करना चाहता है में से प्रत्येक अद्वितीय USERID
और अधिकतम USERDATETIME
संख्या के साथ प्राप्त करने में सक्षम होने की उम्मीद है। और मैं उम्मीद करता हूं कि यह उचित तेज़ हो। मेरे पासटेबल में 2000 उपयोगकर्ता आईडी और 6 मिलियन पंक्तियां हैं I हालांकि, वास्तविक योजना इंडेक्स स्कैन से 6 मिलियन पंक्तियां दिखाती है। यदि मैं USERDATETIME
/USERID
के साथ एक इंडेक्स का उपयोग करता हूं, तो योजना इंडेक्स की तलाश करने के लिए बदलती है, लेकिन अभी भी 6 मिलियन पंक्तियां हैं।
एसक्यूएल इस तरह से इंडेक्स का उपयोग क्यों नहीं करता है जो संसाधित पंक्तियों की संख्या को कम करेगा?
आप किस डीबीएम का उपयोग कर रहे हैं? –
जहां USERDATETIME <'2015-10-11' कहां है, वहां कितनी पंक्तियां हैं? – Lamak
किस प्रकार की अनुक्रमणिका? –