Jestem optymalizatorem DBA/wydajności Sybase i zostałem poproszony o sprawdzenie wydajności niektórych zapytań SQL w Oracle i zobaczenie, jakie są problemy i dlaczego jest wolny. Czy istnieje plan pokazowy podobny do Sybase? Muszę uzyskać liczbę fizycznych wejść/wyjść i logicznych wejść/wyjść, skanów tabel i indeksów, których używa zapytanie lub procedura składowana.
Kiedyś używałem Embarcadero i już go nie mam.
2 odpowiedzi
Plan wyjaśnienia i/lub AutoTrace to odpowiednik Oracle, który zapewni możliwy plan wykonania, z którego Oracle skorzysta w przypadku wykonania zapytania.
W SQLPLUS możesz to zrobić..
SQL> set autotrace traceonly;
SQL> select * from scott.emp;
14 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14 | 518 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 14 | 518 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
1415 bytes sent via SQL*Net to client
381 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
14 rows processed
Oto różne inne opcje dostępne w zależności od poziomu szczegółowości i konkretnego scenariusza.
http://www.oracle-base.com/articles/10g/SQLTrace10046TrcsessAndTkprof10g.php
Nie jestem pewien, czy wszystko to jest w nim dostępne, ale Oracle SQL Developer umożliwia umieszczenie zapytania i kliknięcie przycisku Wyjaśnij plan, aby zobaczyć plan wykonania. Obejmuje to, co ma zamiar zrobić i wszelkie indeksy, których używa.
To darmowe narzędzie, więc spróbuj. :)
Podobne pytania
Nowe pytania
oracle
Oracle Database to wielomodelowy system zarządzania bazami danych stworzony przez Oracle Corporation. NIE używaj tego znacznika w przypadku innych produktów należących do Oracle, takich jak Java i MySQL.