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

Jak interpretujesz plan wyjaśniania zapytania?

Wzdrygam się, gdy widzę komentarze, że pełne skanowanie tabel jest złe, a dostęp do indeksu dobry. Pełne skanowanie tabel, skanowanie zakresu indeksów, szybkie pełne skanowanie indeksów, pętle zagnieżdżone, złącze scalające, złączenia haszujące itp. to po prostu mechanizmy dostępu, które analityk musi zrozumieć i połączyć ze znajomością struktury bazy danych i celu zapytania w aby dojść do jakiegokolwiek sensownego wniosku.

Pełne skanowanie jest po prostu najskuteczniejszym sposobem odczytywania dużej części bloków segmentu danych (tabeli lub (pod)partycji tabeli) i chociaż często może wskazywać na problem z wydajnością, to tylko w kontekście czy jest to skuteczny mechanizm do osiągnięcia celów zapytania. Mówiąc jako hurtownik danych i facet od BI, moją flagą ostrzegawczą numer jeden dotyczącą wydajności jest metoda dostępu oparta na indeksie i zagnieżdżona pętla.

Tak więc dla mechanizmu czytania planu wyjaśnień dobrym przewodnikiem jest dokumentacja Oracle:http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/ex_plan.htm#PFGRF009

Zapoznaj się również z przewodnikiem dotyczącym dostrajania wydajności.

Miej także google dla „informacji o kardynalności”, techniki, w której plan wyjaśniania może być użyty do porównania oszacowań kardynalności na różnych etapach zapytania z rzeczywistymi kardynałami doświadczanymi podczas wykonywania. Uważam, że Wolfgang Breitling jest autorem metody.

Podsumowując:zrozum mechanizmy dostępu. Zrozum bazę danych. Zrozum intencję zapytania. Unikaj praktycznych zasad.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ważna data sprawdzania w Oracle

  2. Jak mogę wykonać natywny skrypt SQL w JPA/Hibernacji?

  3. Zapytanie o kilka NEXTVAL z sekwencji w jednej instrukcji

  4. Oracle Floats a liczba

  5. przekazanie nazwy tabeli jako parametru plsql