Загрузка таблицы через Partition Exchange (Oracle 10g)

У меня есть несколько вопросов по оптимизации этого типа нагрузки.

Создается новая таблица данных для загрузки в секционированную таблицу, а затем строятся индексы для этой новой таблицы.

  1. Должны ли вы построить индекс с параметром COMPUTE STATISTICS или использовать параметр Cascade для DBMS_Stats?

  2. Должны ли вы собирать статистику по таблице до свопа или по разделу после свопа?

  3. Если вы сделаете это после свопа и укажете имя раздела в списке параметров, какое взаимодействие имеет параметр granularity? Например, если я укажу имя раздела, а затем установлю степень детализации на «GLOBAL AND PARTITION», сделает ли это вообще глобальным? Делает ли он только один раздел?


person Community    schedule 03.10.2008    source источник


Ответы (2)


Должны ли вы построить индекс с параметром COMPUTE STATISTICS или использовать параметр Cascade для DBMS_Stats?

Если это хранилище данных, то сначала подумайте о том, чтобы вообще не собирать статистику и использовать динамическую выборку. Во-вторых, если вы собираете статистику, то обязательно используйте статистику вычислений для индекса.

Должны ли вы собирать статистику по таблице до свопа или по разделу после свопа?

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

Если вы сделаете это после свопа и укажете имя раздела в списке параметров, какое взаимодействие имеет параметр granularity? Например, если я укажу имя раздела, а затем установлю степень детализации на «GLOBAL AND PARTITION», сделает ли это вообще глобальным? Он делает только один раздел?

См. выше.

Серьезно, не давайте никакой статистике и динамической выборке шанса.

person David Aldridge    schedule 03.10.2008
comment
это отчетная таблица. Сложный запрос, который материализуется один раз в день. Это ДВ? Наверное нет, может немного. Это действительно хороший совет о динамической выборке, надо будет попробовать. И часть о таблице и разделе вроде как склонялась. Имеет смысл. - person ; 07.10.2008

  1. DBMS_STATS считается правильным способом подсчета статистики для этой версии. Создание индекса с помощью COMPUTE STATISTICS возможно, но обычно вы хотите рассчитать всю свою статистику за один раз и сделать снимки.

  2. Вы хотите собрать статистику после обмена. Таким образом, оптимизатор сделает наилучшее предположение для выполнения запросов с использованием данных этого раздела.

  3. Зачем ставить оба?

person Adam Hawkes    schedule 03.10.2008
comment
Зачем ставить оба? Статистика таблиц и разделов? потому что они используются независимо и оба необходимы. - person ; 07.10.2008