Я думаю, что один из случаев, когда агрегированные таблицы могут быть полезны, — это когда агрегирование может быть эффективно объединено с загрузкой данных на атомарном уровне, что лучше всего проиллюстрировано на примере.
Допустим, вы загружаете большой объем данных в таблицу фактов каждый день через обмен разделами. Обновление материализованного представления с использованием отслеживания изменений разделов будет запущено во время или после обмена разделами, и оно будет сканировать измененные разделы и применять изменения к MV.
Возможно, что как часть заполнения таблицы (таблиц), которую вы собираетесь обменивать с разделами таблицы фактов, вы также могли бы вычислять агрегаты на различных уровнях, используя CUBE/ROLLUP, и использовать многотабличную вставку для загрузки таблиц, которые вы можете затем разделите обмен на одну или несколько таблиц агрегации. Мало того, что это может быть по своей сути более эффективным, поскольку позволяет избежать повторного сканирования данных атомарного уровня, ваши агрегаты вычисляются до обмена разделами таблицы фактов, поэтому, если что-то пойдет не так, вы можете приостановить модификацию самой таблицы фактов.
Другие мысли могут появиться позже ... Я открою ответ как вики сообщества, если у других есть идеи.
person
Community
schedule
18.05.2012