Базы данных Oracle - статьи

Известный врач трахает пациентку в больнице.

Меры по уменьшению нагрузки на ЦП


Для уменьшения нагрузки на ЦП в вашей системе баз данных можно предпринять некоторые меры:

  • Перепишите все коррелированные подзапросы, используя встраиваемые представления. Рассмотрим пример:

ПЕРЕД:

Запрос:

select outer.* from emp outer where outer.sal > (select avg(inner.sal) from emp inner where inner.deptno = outer.deptno);

Вывод Tkprof:

call count cp elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ------- Parse 1 0.02 0.02 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 3278 14.94 33.95 1666 5946 80 49152 ------- ------ -------- ---------- ---------- ---------- ---------- ------- total 3280 14.96 33.97 1666 5946 80 49152

План выполнения:

Rows Row Source Operation -------- --------------------------------------------------- 49152 FILTER 114689 TABLE ACCESS FULL EMP 6 SORT AGGREGATE 114688 TABLE ACCESS FULL EMP

Rows Execution Plan -------- --------------------------------------------------- 0 SELECT STATEMENT GOAL: CHOOSE 49152 FILTER 114689 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'EMP' 6 SORT (AGGREGATE) 114688 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'EMP'

Замечание:

Досадно смотреть на текст плана выполнения приведенного выше запроса, не обнаружив в нем даже никаких намеков на количество фактически выполненных коррелированных подзапросов. Если вы хотите направить в Oracle Corporation запрос на совершенствование РСУБД, вот хороший совет: добавьте в текст плана выполнения количество выполненных коррелированных подзапросов.

ПОСЛЕ:

Запрос:

select emp.* from emp, (select deptno, avg(sal) avg_sal from emp group by deptno) davg_sal where emp.deptno = davg_sal.deptno and emp.sal > davg_sal.avg_sal;

Вывод Tkprof:

call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- -------- ---------- Parse 1 0.02 0.02 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 3278 11.94 20.53 844 4602 40 49152 ------- ------ -------- ---------- ---------- ---------- -------- ---------- total 3280 11.96 20.55 844 4602 40 49152




Начало  Назад  Вперед



Книжный магазин