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.