sql >> Databáze >  >> RDS >> Oracle

Top 5 časově náročných SQL dotazů v Oracle

Zjistil jsem, že tento příkaz SQL je užitečné místo, kde začít (omlouvám se, že to nemohu připsat původnímu autorovi; našel jsem to někde na internetu):

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
/

Toto vyhledá nejvyšší příkazy SQL, které jsou aktuálně uloženy v mezipaměti SQL, seřazené podle uplynulého času. Výpisy časem zmizí z mezipaměti, takže nemusí být dobré zkoušet diagnostikovat včerejší noční dávkovou úlohu, když v poledne dorazíte do práce.

Můžete také zkusit řazení podle disk_reads a provádění. Spouštění je užitečné, protože některé špatné aplikace odesílají stejný příkaz SQL příliš mnohokrát. Tento SQL předpokládá, že správně používáte proměnné vazby.

Pak si můžete vzít sql_id a child_number prohlášení a nakrmit je do tohoto dítěte:-

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

Toto ukazuje skutečný plán z mezipaměti SQL a úplný text SQL.



  1. Jak deklarovat místní proměnné v postgresql?

  2. 115 hlavních otázek na pohovor SQL, které si musíte připravit v roce 2022

  3. Konvence pojmenovávání databází od společnosti Microsoft?

  4. 4 způsoby, jak vložit více řádků do Oracle