Как настроить производительность, если у вас тяжелый параллелизм в таблице Oracle - PullRequest
1 голос
/ 06 мая 2009

В таблице Oracle 10g с интенсивным чтением / записью мы иногда получаем огромный всплеск одновременного цитирования «кэша библиотеки защелок» с использованием всего процессора.

Какие подходы мы можем использовать, чтобы уменьшить нагрузку на базу данных. Мы видели материал о бесплатных списках и их увеличении. Любые другие мнения.

1 Ответ

4 голосов
/ 06 мая 2009

«Кэш библиотеки защелок» не связан с высоким уровнем ввода-вывода для данной таблицы. Это означает, что вы ожидаете защелки для кэша проанализированных операторов SQL; поэтому, скорее всего, когда вы видите эти всплески, происходит необычное количество жестких разборов.

Наиболее распространенная причина этого заключается в том, что вы не используете переменные связывания, поэтому вы анализируете много похожих операторов с разными значениями. НАПРИМЕР. вы выполняете такие заявления, как:

SELECT name FROM emp WHERE empid = 3;

и изменение значения литерального идентификатора при каждом выполнении запроса, что вызывает анализ нового оператора. Лучше заменить литерал переменной связывания и связать новое значение для каждого выполнения. Как именно это сделать, зависит от языка / библиотеки / среды, которые вы используете для выполнения операторов в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...