sql >> Databáze >  >> RDS >> Oracle

Nejlepší postup pro stránkování v Oracle?

Pokud již používáte analýzu (ROW_NUMBER() OVER ... ) pak přidání další analytické funkce do stejného rozdělení přidá na dotaz zanedbatelné náklady.

Na druhou stranu existuje mnoho dalších způsobů stránkování, jeden z nich pomocí rownum :

SELECT * 
  FROM (SELECT A.*, rownum rn
          FROM (SELECT *
                  FROM your_table
                 ORDER BY col) A
         WHERE rownum <= :Y)
 WHERE rn >= :X

Tato metoda bude lepší, pokud máte v objednávkovém sloupci odpovídající index. V tomto případě může být efektivnější použít dva dotazy (jeden pro celkový počet řádků, jeden pro výsledek).

Obě metody jsou vhodné, ale obecně platí, že pokud chcete jak počet řádků, tak sadu stránkování, pak je použití analýzy efektivnější, protože se na řádky dotazujete pouze jednou.



  1. Typy SQL příkazů

  2. Jak vytvářet vztahy v MySQL

  3. Funkce LEAST() v Oracle

  4. Nastavte možnost 9 v uložené proceduře SQL Server pomocí WinHttp.WinHttpRequest.5.1 pro TLS 1.2