В этом разделе читатель познакомится с большинством аспектов и вопросов, с которыми ему придется иметь дело при сборе статистики объектов. Мы обсудим, почему так важно вычисление статистики, каким образом, как долго и с какой частотой собирать ее, а также все остальные моменты, к возникновению которых нужно быть готовыми.
Зачем требуется собирать статистику?
Вычисление статистики уровня объектов является основной административной функцией АБД, связанной с производительностью системы, и именно статистика управляет поведением стоимостного оптимизатора. Если не вычислять статистику объектов, процесс определения стоимости операторов SQL выполняется Oracle с использованием некоторых внутренних жестко
определенных значений.
Как вычислять статистику?
Чтобы определить значения статистики, используется команда analyze. Достаточно выполнить для таблицы эту команду, и статистика будет вычислена не только для самой таблицы, но и для всех связанных с ее столбцами индексов. Значения статистики могут быть найдены двумя способами: либо оценкой статистики на основании образца какого-то размера, либо вычислением статистики для всего объекта. Предпочтительным способом для баз данных с очень большими таблицами или для сред, в которых нельзя выделить время и ресурсы для выполнения вычисления статистики, является оценка.
Предупреждение
Не рекомендуется генерировать статистику для пользователя SYS, поскольку в этом случае на нее ложится вся ответственность за взаимные блокировки базы данных во время этого процесса. Кроме того, она же отвечает за возможное снижение производительности, связанное с накоплением статистики для объектов пользователя SYS. ■
В для выполнения и дополнения всех операций, поддерживаемых
командой analyze, предлагается пакет под названием DBMSSTATS. В число поддерживающих операций входит подготовка к сбору статистики, усовершенствованное вычисление статистики (параллельный сбор), перенос данных статистики из словаря данных в собственные статистические таблицы пользователей и получение информации о статистике. В зависимости от типа применяемой среды пользователь может пожелать для экспериментов с различными коллекциями статистики и планами выполнения использовать свои собственные статистические таблицы. Эти таблицы будут размещены не в словаре данных и поэтому не смогут влиять на работу стоимостного оптимизатора. При этом система не подвергается риску при постоянной подмене статистики из словаря и связанного с этим возможного снижения производительности.
Предупреждение Непосредственное использование пакета DBMS_STATS не поддерживается и не рекомендуется для баз данныхOracle Application. Oracle Apps поддерживает свой собственный статистический пакет, который обращается к DBMS_STATS и, кроме того, обновляет важную статистику в Application Object Library Schema.
Для того чтобы в OradeHi планы выполнения операторов SQL оставались статическими, они также могут быть стабилизированы. Эта концепция называ
ется стабильность плана.
Она особенно подходит для сред, в которых нельзя допустить изменения планов выполнения приложений при изменении версии базы данных, параметров инициализации, объемов данных в таблицах и т. п. Oracle поддерживает стабильность планов, используяхранимые структуры,
позволяющие контролировать планы выполнения приложений.Пакет DBMSSTATS и функциональные возможности Stored Outlines (хранимые структуры) содержат большое количество деталей, обсуждение которых выходит за рамки этой книги. Дополнительную информацию о различных особенностях и синтаксисе упомянутых выше возможностей можно найти в разделе "Настройка Oracle8i" документации по Oracle.
< Предыдущая | Следующая > |
---|