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

Top 5 czasochłonnych zapytań SQL w Oracle

Uważam, że to polecenie SQL jest przydatnym miejscem do rozpoczęcia (przepraszam, nie mogę przypisać tego oryginalnemu autorowi; znalazłem je gdzieś w Internecie):

SELECT * FROM
(SELECT
    sql_fulltext,
    sql_id,
    elapsed_time,
    child_number,
    disk_reads,
    executions,
    first_load_time,
    last_load_time
FROM    v$sql
ORDER BY elapsed_time DESC)
WHERE ROWNUM < 10
/

Znajduje to najlepsze instrukcje SQL, które są obecnie przechowywane w pamięci podręcznej SQL, uporządkowane według czasu, który upłynął. Wyciągi z czasem znikną z pamięci podręcznej, więc próba zdiagnozowania zadania wsadowego z zeszłej nocy może nie być dobra, gdy wejdziesz do pracy w południe.

Możesz także spróbować uporządkować według disk_reads i egzekucji. Wykonania są przydatne, ponieważ niektóre słabe aplikacje wysyłają tę samą instrukcję SQL zbyt wiele razy. Ten kod SQL zakłada, że ​​poprawnie używasz zmiennych bind.

Następnie możesz wziąć sql_id i child_number oświadczenia i nakarm je temu dziecku:-

SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('&sql_id', &child));

Pokazuje rzeczywisty plan z pamięci podręcznej SQL i pełny tekst 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. Sortuj według dnia tygodnia od poniedziałku do niedzieli

  2. Jak zaszyfrować hasło w Oracle?

  3. Pobieranie wiadomości ze skrzynki pocztowej za pomocą interfejsu API Mail_Client PL/SQL

  4. Jak używać parametru tablicy/tabeli do Oracle (ODP.NET 10g) za pośrednictwem ADO.NET/C#?

  5. Oracle Entity Framework — generowanie encji z tabel w innym schemacie