Koszt zapytania Oracle a czas wykonania

0

Witam Wszystkich. Mam ciekawą sytuację - jestem na etapie projektowania tabeli w Oracle 10 XE. Testuję koszt wykonania zapytania i tu mam pytanie -
zapytanie, którego koszt jest większy wykonuje się kilkukrotnie szybciej, od tego z mniejszym kosztem. Jak to interpertować?
Dodam, że testy wykonywałem kilkukrotnie i są powtarzalne. Pozdrawiam.
Ps. Wiem że ID zawsze będzie większe od 0, ale jest to pole indeksowane i chciałem sprawdzić czy jego wykorzystanie zmieni wyniki.

Zapytanie tańsze:
ec2fa613ac.png
c0ba53195b.png

Zapytanie droższe:
39d5d9fce1.png
81e3b15ea3.png

2

Tutaj masz kilka ciekawych informacji na ten temat: http://stackoverflow.com/questions/102477/explain-plan-cost-vs-execution-time

2

Może się okazać, że koszt jest większy, bo do wykonania zapytania potrzebne jest dużo pamięci. U Ciebie wykona się to szybko, na serwerze, gdzie pójdzie 100 takich zapytań naraz, może zabraknąć pamięci, więc zapytania będą na siebie czekać, czyścić sobie nawzajem cache. Gdybam, ale na MSSQL raz się na to boleśnie nadziałem.
Koszt zapytania to niestety często tylko sugestia, że idziesz w dobrym albo złym kierunku, potrzeba ogromnej ilości wiedzy, żeby na podstawie planu zapytania wiedzieć co poprawić/podkręcić.

1

spróbuj może ręcznie wygenerować statystyki bazy i wykonać zapytania ponownie - koszty zapytań powinny być niższe, jeśli nic nie da to ewentualnie pozakładać indeksy na klucze obce

http://www.dba-oracle.com/concepts/tables_optimizer_statistics.htm

1 użytkowników online, w tym zalogowanych: 0, gości: 1