23сен
Soft parse и hard parse – частичный разбор и полный разбор операторов.
Все Oracle SQL- предложения должны быть разобраны, перед тем как быть выполненными. Разбор – это процесс разбиения оператора на составные части, выполнение различных проверок. Основные его шаги:
- Синтаксический анализ. Проверка корректности оператора, проверка выполнения правил языка SQL, проверка грамматического смысла предложения. Коротко говоря – устанавливается корректность sql-утверждения.
- Семантический анализ. Проверка корректности с точки зрения объектов базы данных: существуют ли таблицы, столбцы, привилегии, права доступа, отсутствие неоднозначности. Коротко говоря – будет ли обеспечено корректное выполнение запроса.
- Оптимизация запроса
- Генерация плана источников строк
Если при разборе оператора после выполнения первых двух шагов оракл обнаруживает в разделяемом пуле (участок в памяти SGA), что идентичный (полностью совпадающий) оператор был разобран и обработан в другой сессии, следующие два шага не выполняются. Такой разбор называется частичным или soft parse. В этом случае экономятся ресурсы, запрос выполняется быстрее.
Если же запрос не был разобран ни в одной сессии или информация о разборе не сохранилась в памяти, то выполняются все четыре шага разбора. Этот разбор называется полным разбором или hard parse. При выполнении третьего и четвертого шага остро стоит вопрос конкуренции за защелки, к тому же требуется значительная нагрузка на процессор.
Ваша задача добивать повышения доли частичных разборов. Следствием этого будет повышение производительности системы.