Степень производительности каждой программы БД во многом сводится к выполнению им запросов. И хотя оптимизатор Oracle прекрасно подходит, чтобы оценивать наилучшую возможность плана без какого-то влезания пользователя, иногда план выполнения оператора SQL может резко поменяться из-за множества причин - повторного сбора статистики оптимизатора, изменения параметров оптимизатора, а также определения метаданных и/или схемы.
Отсутствие гарантий, что каждая смена плана всегда будет в оптимальную сторону, привела кое-каких заказчиков к тому, что они закрепили свои хранимые планы (планы выполнения) или блокировали статистику от оптимизатора. Но, если так делать, мы теряем возможность когда-нибудь воспользоваться в своих целях новыми функциональными возможностями оптимизатора или путями доступа, которые смогли бы увеличить производительность операторов SQL. Окончательным решением было бы сохранение текущих планов выполнения, самостоятельно от изменений среды, и разрешение изменений, ведущих только к лучшему.
Oracle Database 11g - первая база данных на рынке, способная решить этот вопрос. Приспособление SQL Plan Management (управление планами выполнения операторов SQL) обладает инфраструктурой, обладающей прозрачным управляемым преобразованием планов исполнения. При использовании SPM оптимизатор может автоматически управлять планами выполнения и гарантировать, что употребляются только принятые или известные планы. Когда оператор SQL находит новый план для выполнения, то он не применяется до того времени, пока не проверится БД, и не будет ясно, что у него имеется сопоставимая или лучшая производительность, нежели у текущего плана.
Комментирование закрыто.