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: