यदि आप पहले से ही एनालिटिक्स का उपयोग कर रहे हैं (ROW_NUMBER() OVER ...
) फिर उसी विभाजन पर एक और विश्लेषणात्मक कार्य जोड़ने से क्वेरी में एक नगण्य लागत जुड़ जाएगी।
दूसरी ओर, पेजिनेशन करने के कई अन्य तरीके हैं, उनमें से एक rownum
का उपयोग कर रहा है। :
SELECT *
FROM (SELECT A.*, rownum rn
FROM (SELECT *
FROM your_table
ORDER BY col) A
WHERE rownum <= :Y)
WHERE rn >= :X
यदि आपके पास ऑर्डरिंग कॉलम पर उपयुक्त अनुक्रमणिका है तो यह विधि बेहतर होगी। इस मामले में, दो प्रश्नों का उपयोग करना अधिक कुशल हो सकता है (पंक्तियों की कुल संख्या के लिए एक, परिणाम के लिए एक)।
दोनों विधियां उपयुक्त हैं लेकिन सामान्य तौर पर यदि आप पंक्तियों की संख्या और एक पृष्ठ पर अंक लगाना दोनों चाहते हैं तो विश्लेषण का उपयोग करना अधिक कुशल है क्योंकि आप केवल एक बार पंक्तियों को क्वेरी करते हैं।