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

Plany adaptacyjne 12c w SQL Developer

Pracowałem nad dostrojeniem niektórych instrukcji SQL w nowo zaktualizowanej bazie danych, od Oracle 11.2.0.4 do 12.1.0.2. Jak zwykle, lubię korzystać z SQL Developer, aby zobaczyć plan wyjaśniania. Byłem zaskoczony, widząc szary tekst w wynikach planu wyjaśniania, który możesz zobaczyć poniżej.

Moją pierwszą reakcją było zwariowanie i zastanowienie się, dlaczego Oracle ma zarówno sprzężenie haszujące, jak i zagnieżdżone do łączenia dwóch stołów. W dalszej części planu widzę INDEX (SZYBKIE PEŁNE SKANOWANIE) tej samej tabeli, w której wykonano INDEX (SKANOWANIE ZAKRESU). Dlaczego dwa dostępy do tej samej tabeli? Co robi Oracle 12c?

Wszystko to jest częścią nowej optymalizacji zapytań adaptacyjnych 12c Optimizer. W przypadku tej instrukcji SQL Optymalizator zdecydował się na użycie początkowego planu obejmującego łączenie zagnieżdżonych pętli. W przypadku planu, który obejmuje łączenie zagnieżdżonych pętli, Oracle uzyska dostęp do tabeli za pomocą skanowania zakresu indeksów. Optymalizator zdecydował również, że kolejnym planem wykonania do rozważenia może być szybkie pełne skanowanie indeksu do połączenia mieszającego. Przed rozpoczęciem wykonywania instrukcji SQL Optymalizator ma dwa plany. Jeden plan jest domyślny plan, a drugi plan to adaptacyjny plan. Oracle będzie obserwować wykonanie instrukcji SQL, gdy zacznie ona wykonywać z domyślnym planem. Jeśli Oracle stwierdzi, że jest to zły plan wykonania, może w locie przełączyć się na plan adaptacyjny.

Więcej informacji na temat planów adaptacyjnych można znaleźć w tym dokumencie firmy Oracle. Strony 3-5 ilustrują plany adaptacyjnego dołączania w akcji.

Szary tekst w powyższym planie wyjaśniania to po prostu plan adaptacyjny. SQL Developer 4.1 pokazuje zarówno plan domyślny, jak i adaptacyjny.

W dalszej części planu wyjaśnień znajduje się sekcja Inne XML, którą można zobaczyć poniżej. Widzimy, że moja wersja db to 12.1.0.2. Możemy również wskazać typ informacji, że jest to plan adaptacyjny.

Zwróć uwagę na sekcję zatytułowaną „wiersze”. Widzimy każdy wiersz planu wyjaśniania. Te wiersze, w których „skp=0” są częścią domyślnego planu. Wiersze, w których „skp=1” to plan adaptacyjny, o którym teraz wiemy, że pojawiają się jako szary tekst w programistach SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń z dołączeniem w Oracle sql Query

  2. Oracle porównuje znacznik czasu z datą

  3. Unikanie pojedynczego cudzysłowu w PLSQL

  4. Sprawdź, czy bieżąca data jest między dwiema datami Oracle SQL

  5. Jak zwrócić listę obsługiwanych języków w Oracle?