Сбор таблиц статистики для Oracle - PullRequest
3 голосов
/ 31 августа 2008

Когда и как следует собирать статистику таблиц для Oracle версии 9 и выше? Как бы вы собрали статистику для большой базы данных, где сбор статистики столкнулся бы с «рабочим временем».

Ответы [ 4 ]

5 голосов
/ 22 сентября 2008

Я не согласен с тем, что вы всегда должны перестраивать свою статистику после большого количества удалений или вставок. Как всегда, это зависит. В ситуации с хранилищем данных при повторном построении ваших материализованных представлений вы будете выполнять множество удалений и вставок, но базовая структура данных не изменится.

Пересчитывать статистику таблицы нужно только в том случае, если в ее содержимом произошло существенное изменение. Это не обязательно означает после большого количества удалений или вставок, а скорее, когда удаления, вставки или обновления существенно изменяют содержимое относительно возможных планов выполнения.

Если вы усекаете таблицы и перестраиваете (что приведет к сбросу вашей статистики), вместо дорогостоящего вычисления статистики вам часто лучше сохранять статистику перед усечением и восстанавливать ее после перестроения таблицы.

Для сохранения текущих просмотров статистики вы используете:

dbms_stats.export_table_stats

, а затем для их восстановления вы используете:

dbms_stats.import_table_stats

(Существуют соответствующие процедуры для schema и database.)

1 голос
/ 31 августа 2008

Сбор статистики должен производиться всякий раз, когда произошли большие изменения в содержании данных, например, большое количество удалений или вставок. Если структура таблицы изменилась, вы также должны собрать статистику. Желательно использовать опцию «ОЦЕНИТЬ».

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

0 голосов
/ 22 сентября 2008

Подумайте о резервном копировании текущей статистики при сборе - так вы сможете сравнить их (если вам это интересно) и, возможно, восстановить их, если ваша новая статистика вызовет проблемы. Помните, что статистика используется для определения планов выполнения - вы можете собирать их только в том случае, если хотите изменить планы выполнения.

0 голосов
/ 21 сентября 2008

Убедитесь, что при использовании оценки (sample_percent) вы набрали не менее 10 процентов. Ниже это может привести к весьма сомнительным результатам.

...