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

Szybkość stronicowanych zapytań w Oracle

Główny problem w przypadku 2 polega na tym, że w wielu przypadkach cały zestaw wyników zapytania musi zostać uzyskany, a następnie posortowany przed można zwrócić pierwszych N wierszy - chyba że kolumny ORDER BY są indeksowane i Oracle może użyć indeksu, aby uniknąć sortowania. W przypadku złożonego zapytania i dużego zestawu danych może to zająć trochę czasu. Jednak może być kilka rzeczy, które możesz zrobić, aby poprawić prędkość:

  1. Spróbuj się upewnić, że w wewnętrznym SQL nie są wywoływane żadne funkcje — mogą one zostać wywołane 5 milionów razy tylko po to, aby zwrócić pierwsze 20 wierszy. Jeśli możesz przenieść te wywołania funkcji do zewnętrznego zapytania, będą one wywoływane mniej.
  2. Użyj wskazówki FIRST_ROWS_n, aby skłonić Oracle do optymalizacji pod kątem tego, że nigdy nie zwrócisz wszystkich danych.

EDYTUJ:

Inna myśl:obecnie przedstawiasz użytkownikowi raport, który może zwracają tysiące lub miliony wierszy, ale użytkownik nigdy realistycznie nie przegląda ich wszystkich. Czy nie można ich zmusić do wybrania mniejszej ilości danych np. ograniczając wybrany zakres dat do 3 miesięcy (lub cokolwiek innego)?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wykonywanie dynamicznego DDL w procedurze PL/SQL poprzez uprawnienia roli definiującego

  2. Ustawienie NLS_NUMERIC_CHARACTERS dla dziesiętnych

  3. Jak mogę przetłumaczyć identyfikator FileNet ID w DB2/Oracle na przyjazny identyfikator GUID?

  4. Utwórz nowego użytkownika Oracle i przyznaj uprawnienia:składnia i przykłady

  5. WYBIERZ, używając Oracle