Ihre Abfrage muss die ersten 90M
zählen Datensätze, um die nächsten 100
zu erhalten , also gibt es kaum Raum für Verbesserungen.
Ich sehe kein ORDER BY
-Klausel in Ihrer Unterabfrage, aber wahrscheinlich haben Sie sie. In diesem Fall möchten Sie vielleicht einen Index darauf erstellen.
Und eine Frage:Klicken sich Ihre Benutzer wirklich durch 900K
? Seiten, bevor Sie sich über die Leistung beschweren?
Aktualisierung:
Wenn Sie die neueste Seite benötigen, müssen Sie Ihren ORDER BY
neu schreiben Spalte in absteigender Reihenfolge:
SELECT *
FROM (
SELECT rownum rnum, f.*
FROM findings f
ORDER BY
record_ordering_column DESC
)
WHERE rnum > 900
AND rownum <= 100
und erstellen Sie einen Index für record_ordering_column
Beachten Sie, dass ich rownum
mische aus den verschachtelten Abfragen, um die Leistung zu verbessern.
Weitere Einzelheiten finden Sie in diesem Artikel in meinem Blog: