Сервер Oracle умеет собирать статистику данных из своих таблиц, которая используется для построения оптимальных планов выполнения запросов и DML-операций, использующих эти таблицы. Cost-based оптимизатор для построения плана выполнения всегда использует собранную статистику. Если статистика отсутствует, то используются стандартные, среднепотолочные величины, которые как правило очень далеки от реальных параметров.
Статистика изменяется только в момент её сбора. По этому для сильно меняющихся таблиц статистику надо собирать как можно чаще. В противном случае оптимизатор будет использовать старые данные, не актуальные на момент построения плана выполнения.
Oracle 10 умет собирать статистику автоматически. Если при установке не менять параметры, связанные с автоматическим сбором статистики, то Oracle собирает статистику по вечерам для сильно изменившихся за сутки таблиц. Если Вы оставляете автоматический сбор статистики, то, возможно, необходимо поменять параметры этого процесса, а именно: периодичность и время сбора, процент обрабатываемых строк, количество бакетов в гистограммах, критерии "сильных изменений" в таблицах. Читайте об этом в документации по Oracle.
Заголовок | Описание |
---|---|
Таблица | Имя таблицы схемы базы данных АСР "Fastcom". Цветом фона выделены те таблицы, которые разбиты на секции (Partitioned). Такие таблицы физически не существуют, а их имя обозначает набор секций (partitions), каждый из которых на физическом уровне представляет собой отдельную таблицу. Изначально видимый столбец. Значения столбца могут быть выделены (в зависимости от условий). |
Аудит для группы | Изначально невидимый столбец. |
Дата сбора | Время последнего сбора статистики по таблице. Изначально видимый столбец. |
Всего строк | Общее количество строк в таблице на момент сбора статистики. При быстром сборе статистики (не по всем строкам) количество строк считается приблизительно (оценочное количество). Для партиционированных таблиц здесь отображается сумма строк во всех разделах. Изначально видимый столбец. |
Обработано | Количество анализированных строк. Количество строк, по которым проводился сбор статистики. Если это число совпадает с общим количеством строк, то собиралась полная статистика (по всем строкам таблицы). В этом случае, общее число строк отображает их реальное количество на момент сбора статистики. Изначально видимый столбец. |
Своб-но | Среднее количество свободного места в блоках. Среднее количество байт в каждом блоке, по тем или иным причинам не занятых под хранение данных таблицы. В Oracle в каждом табличном пространстве может быть свой размер блока и для конкретной таблицы он вычисляется так: Select Block_Size from dba_tablespaces TS, user_tables t where ts.tablespace_name=t.tablespace_name and t.table_name='Имя_Таблицы'. Место в блоке может оставляться Ораклом намеренно (параметр PCT_Free указывает - сколько в процентах) для обновлений с увеличением размера или в случае удалений или перемещений записей. Изначально видимый столбец. |
Перемещений | Количество всех мигрированных и сцепленных строк. Строка мигрирует в другой блок, если при её увеличении (Update) не хватает места в текущем блоке. Сцепленная строка - это когда размер строки превышает размер блока и строка располагается в нескольких блоках сразу. И то и другое сильно замедляет процедуру выборки данных. Данный показатель можно уменьшить перемещением таблицы на другое место. Сделать это можно командой "Перемещение таблицы". Изначально видимый столбец. |
Размер строк | Средний размер строк в таблице. По данному параметру можно оценить - сколько примерно строк таблицы размещается в одном блоке. Оптимизатор использует это число для оценки количества считываемых строк при запросе данных из таблицы. Изначально видимый столбец. |
Блоков | Общее количество блоков в таблице ниже High Water Mark. Это не количество занятых и даже не количество частично занятых блоков, а максимальное количество когда либо используемых блоков в таблице. Освободившиеся блоки таблицы не могут быть использованы для хранения данных других таблиц и индексов пока таблица не будет удалена, перестроена или усечена (Truncate). Изначально видимый столбец. |
Есть ли секционирование | Разбита ли таблица на секции (разделы). Секции (разделы, Partitions) по сути являются отдельными таблицами, которые даже могу располагаться в разных табличных пространствах. Однако, с точки зрения DML-операций и запросов, все секции - это одна таблица. Тем не менее, если DML-операций и запросы не затрагивают некоторую секцию, то и обращений к ней не производится. Каждая секция может иметь свою статистику и она может собираться разными методами с разными параметрами. Изначально невидимый столбец. |
Действие | Описание |
---|---|
Сбор статистики | Запускается процесс сбора статистики по отмеченным таблицам (если хотя бы одна таблица отмечена) и по текущей таблице - той, на которой стоит курсор (если ни одна таблица не отмечена). Применимо, если в списке есть хотя бы одна запись. Действие может активизироваться кнопкой на панели инструментов. Для быстрого выполнения действия можно сделать двойной щелчок мышью на записи. Действие применяется к текущей или ко всем отмеченным записям с отображением процента обработанных строк. При выполнении действия вызывается Бланк «Сбор статистики таблиц» |
Удаление статистики | Удаление всех статистических данных таблицы. Запускается процесс удаления статистики с отмеченных таблиц (если хотя бы одна таблица отмечена) и с текущей таблицы - той, на которой стоит курсор (если ни одна таблица не отмечена). Применимо, если в списке есть хотя бы одна запись. Действие может активизироваться кнопкой на панели инструментов. Для быстрого выполнения действия можно нажать комбинацию клавиш Shift-F6. Действие применяется к текущей или ко всем отмеченным записям с отображением процента обработанных строк. |
Статистика по индексам | Статистика по индексам таблицы. Вызывает список, отображающий все глобальные индексы данной таблицы. В нём можно собирать статистику по отдельным индексам с разными параметрами. Применимо, если в списке есть хотя бы одна запись. Действие применяется только к текущей записи. При выполнении действия вызывается Список «Статистика по индексам» |
Статистика по секциям | Статистика по секциям (partitions) таблицы. Вызывает список, отображающий все секции данной таблицы. В нём можно собирать статистику по отдельным секциям с разными параметрами. Доступно, в зависимости от условий. Действие применяется только к текущей записи. При выполнении действия вызывается Список «Статистика по секциям таблиц» |
Статистика по столбцам | Статистика по столбцам таблицы. Вызывает список, отображающий все столбцы данной таблицы. В нём можно собирать статистику по отдельным столбцам с разными параметрами. Применимо, если в списке есть хотя бы одна запись. Действие применяется только к текущей записи. При выполнении действия вызывается Список «Статистика по столбцам» |
Все индексы всех таблиц | Вызывает список, отображающий все индексы всех таблиц. В нём можно производить поиск по параметрам нужных индексов разных таблиц, для последующих манипуляций с их статистикой. Всегда доступно, вне зависимости от контекста. Действие применяется только к текущей записи. При выполнении действия вызывается Список «Статистика по индексам» |
Все секции всех таблиц | Вызывает список, отображающий все секции всех секционированных таблиц. В нём можно производить поиск по параметрам нужных секций разных таблиц, для последующих манипуляций с их статистикой. Всегда доступно, вне зависимости от контекста. Действие применяется только к текущей записи. При выполнении действия вызывается Список «Статистика по секциям таблиц» |
Все столбцы всех таблиц | Вызывает список, отображающий все столбцы всех таблиц. В нём можно производить поиск по параметрам нужных столбцов разных таблиц, для последующих манипуляций с их статистикой. Всегда доступно, вне зависимости от контекста. Действие применяется только к текущей записи. При выполнении действия вызывается Список «Статистика по столбцам» |
Перемещение таблицы | Пересоздание таблицы без изменения данных в ней. Данное действие полезно, если надо упорядочить данные в таблице. Например в случае большого процента перемещённых строк или если данные в таблице разбалансированы. Очень осторожно надо применять это действие к таблицам большого объёма, так как на время перемещения таблице надо в два раза больше места в табличном пространстве, чем обычно. Применимо, если в списке есть хотя бы одна запись. Действие применяется только к текущей записи. |