База данных выступлений - PullRequest
       3

База данных выступлений

1 голос
/ 22 февраля 2011

Что лучше всего делать из следующих команд?

  1. exec dbms_stats.gather_table_stats

  2. dbms_stats.gather_schema_stats

Какая из них улучшает производительность базы данных?

Ответы [ 3 ]

5 голосов
/ 22 февраля 2011

Они оба улучшают производительность базы данных (точнее, они оба собирают статистику, которая будет использоваться oprtimiser, и может улучшить производительность). GATHER_SCHEMA_STATS собирает статистику для всех объектов в схеме. GATHER_TABLE_STATS делает это только для одной таблицы. Вы можете прочитать все о них в документации .

3 голосов
/ 22 февраля 2011

оба.ни.зависит.

Что вы подразумеваете под "производительностью базы данных"?Сбор статистики по существующим таблицам и индексам МОЖЕТ помочь, если статистика устарела.Но они не волшебная палочка, которая заменит добавление полезных индексов для использования в проблемных запросах.

Обновление статистики в одной таблице может быть всем, что вам нужно для вашей проблемы.Обновление статистики по ВСЕМ индексированным столбцам может быть в порядке.Или это могут быть не те проблемы, с которыми вы сталкиваетесь с точки зрения производительности.Хорошие индексы не помогут плохо написанным запросам.

Вам необходимо выяснить, ЧТО СПЕЦИАЛЬНО медленно, прежде чем вы сможете понять, как это исправить.Наверняка не существует ни одной педали акселератора для всей базы данных - как бы нам всем этого ни хотелось.

2 голосов
/ 22 февраля 2011

Oracle регулярно собирает статистику, начиная с 10g. Вы заметили, что стандартное собрание в вашем случае слишком редкое или недостаточно подробное? Значение по умолчанию эстимейта <100 может привести к плохим планам в 10g. </p>

  1. Посмотрите на ваше приложение, если производительность в порядке, все готово. Если нет ...
  2. Сосредоточьтесь на задачах, которые ваше приложение выполняет, чтобы замедлить и разбить время, потраченное на основных участников. Попробуйте оптимизировать основных участников. Остановитесь, когда производительность приемлема.

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

Эта превосходная статья Кэри Миллсап может помочь вам: http://method -r.com / downloads / doc_details / 44-мышление-ясно-о-производительности

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