Оптимизиране на заявките в ORACLE с план за изпълнение - Life in Code

Веднага ще изясня какво ще опиша, като използвам примера за използване на безплатната помощна програма OraDeveloper Studio. Защо? Тъй като не беше възможно да се направи това с обикновени заявки и нямаше време и желание да се разбере, тъй като има по-лесен начин. 😉

И така, за какво е това? Ще ви опиша конкретен пример, поради който бях принуден да извърша оптимизация.

Задачата е да се заредят десетки хиляди редове с данни в базата данни. За всеки ред първо трябва да намерите допълнителни данни в базата данни с една доста тромава заявка (4 таблици чрез присъединяване).
Проблем - зареждането на 15 хиляди реда отнема 8-9 часа. Тъй като според условията на проблема е необходимо да изтегляте често, а не веднъж на всеки пет години ... Като цяло е необходимо времето да се доведе до приемливо.

Какво съм направил?
1. Разбрах, че селекцията е тази, която забавя (данните се вмъкват и актуализират в таблици, където има много редове и някои от таблиците нямат нито индекси, нито ключове - оттук и съмненията за грешката на селекцията).
2. Провери наличността на индекси в полетата, използвани от заявката. Добавено липсва.
3. Помолен от знаещи за помощ. 🙂

Информираните съветват да анализират плана за изпълнение на заявката и обясняват как да го направят в OraDev.