Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wyrocznia i paginacja

Twoje zapytanie będzie musiało odliczyć pierwsze 90M rekordy, aby uzyskać następne 100 , więc nie ma miejsca na poprawę.

Nie widzę ORDER BY klauzula w podzapytaniu, ale prawdopodobnie ją masz. W takim przypadku możesz utworzyć na nim indeks.

I pytanie:czy Twoi użytkownicy naprawdę klikają 900K strony przed złożeniem skargi na wydajność?

Aktualizacja:

Jeśli potrzebujesz najnowszej strony, musisz przepisać swoje ORDER BY kolumna w kolejności malejącej:

SELECT  *
FROM    (
        SELECT  rownum rnum, f.*
        FROM    findings f
        ORDER BY
                record_ordering_column DESC
        ) 
WHERE   rnum > 900
        AND rownum <= 100

i utwórz indeks w record_ordering_column

Zauważ, że mieszam rownum z zagnieżdżonych zapytań w celu poprawy wydajności.

Zobacz ten artykuł na moim blogu, aby uzyskać więcej informacji:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można wyodrębnić wartości XML z Oracle CBLOB

  2. Tworzenie wyzwalacza w Oracle Express

  3. Tabela bazy danych Oracle w widoku grid

  4. Instrukcja Oracle SQL w java

  5. Jaka jest różnica między CLOB a NCLOB?