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

Wydajność:podzapytanie lub łączenie

Nowoczesne RDBM, w tym Oracle, optymalizują większość sprzężeń i podzapytań aż do tego samego planu wykonania.

Dlatego piszę zapytanie w sposób, który jest dla Ciebie najprostszy i skoncentruję się na zapewnieniu pełnej optymalizacji indeksów.

Jeśli podasz ostateczne zapytanie i schemat bazy danych, możemy zaoferować szczegółowe sugestie, w tym informacje dotyczące potencjalnych problemów z blokowaniem.

Edytuj

Oto kilka ogólnych wskazówek dotyczących Twojego zapytania:

  • W przypadku złączeń upewnij się, że masz indeks kolumn, w których chcesz się połączyć. Pamiętaj, aby zastosować indeks do połączonych kolumn w obu tabelach. Możesz pomyśleć, że potrzebujesz indeksu tylko w jednym kierunku, ale powinieneś indeksować oba, ponieważ czasami baza danych określa, że ​​lepiej jest połączyć w przeciwnym kierunku.
  • W przypadku klauzul WHERE upewnij się, że masz indeksy kolumn wymienionych w WHERE.
  • Do wstawiania wielu wierszy najlepiej jest wstawić je wszystkie w jednym zapytaniu.
  • W przypadku wstawiania do tabeli z indeksem klastrowym najlepiej jest wstawić z wartościami przyrostowymi dla indeksu klastrowego, tak aby nowe wiersze były dołączane na końcu danych. Pozwala to uniknąć przebudowy indeksu i często pozwala uniknąć blokowania istniejących rekordów, co spowolniłoby zapytania SELECT względem istniejących wierszy. Zasadniczo wstawki stają się mniej bolesne dla innych użytkowników systemu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 11g SQL, aby uzyskać unikalne wartości w jednej kolumnie wielokolumnowego zapytania

  2. Błąd ORA 00904:nieprawidłowy identyfikator

  3. Koszt Oracle In-Memo

  4. funkcja potokowa z parametrem kursora wyrocznia

  5. Czy konieczne jest wyrzucenie DbCommand po użyciu?