मेरे पास एक SQL क्वेरी है जो इस तरह कुछ दिखती है:मैं ओरेकल में row_number कैसे बढ़ा सकता हूं?
SELECT * FROM(
SELECT
...,
row_number() OVER(ORDER BY ID) rn
FROM
...
) WHERE rn between :start and :end
अनिवार्य रूप से, यह उस भाग से ऑर्डर है जो चीजों को धीमा कर रहा है। अगर मैं इसे हटा देना चाहता था, तो एक्सप्लाइन लागत परिमाण (1000x से अधिक) के क्रम से नीचे जाती है। मैंने यह कोशिश की है:
SELECT
...
FROM
...
WHERE
rownum between :start and :end
लेकिन यह सही परिणाम नहीं देता है। क्या इसे गति देने का कोई आसान तरीका है? या मुझे EXPLAIN उपकरण के साथ कुछ और समय बिताना होगा?
काम करता है आकर्षण। हालांकि, ऑप्टिमाइज़र संकेतों में एक सराहनीय अंतर नहीं लग रहा था। –
इसका मतलब है कि 'सीबीओ' इंडेक्स लेने के लिए पर्याप्त स्मार्ट था। वास्तव में यह ROW_NUMBER था जो इसके बजाय ROW_NUMBER था। – Quassnoi
लेकिन मैं अभी भी संकेत छोड़ दूंगा या एक आउटलाइन बनाया होगा, बस सीबीओ अपने दिमाग को बदल देगा :) – Quassnoi