У меня есть таблица фактов, содержащая 8 миллионов строк с увеличением на 1 миллион строк в месяц.Таблица уже содержит индексы по ней.Таблица используется средой IBM Cognos для генерации отчетов.В настоящее время я ищу способ оптимизации таблицы операторов SELECT.
При первой попытке я разделил таблицу (каждый раздел имеет одинаковое распределение строк), и запрос подходит для разделов, но по какой-то причине я получаю равную или даже худшую производительность, что странно.На один запрос влияет только один раздел.Может кто-нибудь объяснить, как это оптимизировать?
Вторая идея, к которой я пришел, заключается в реализации таблицы фактов в виде таблицы, организованной по индексу, но она должна иметь все столбцы в качестве первичного ключа.Это нормально, и будет ли повышение производительности?
Третья идея - реализовать таблицу фактов таким образом, чтобы она содержала все столбцы, объединенные из звездообразной схемы.Будет ли повышение производительности?
РЕДАКТИРОВАТЬ: Вот план выполнения: 
Мне удалось сократить время доступа к таблице фактов FT_COSTS в 3 раза (стоимость 42000, сейчас14900) ПОСЛЕ того, как я создал индексы, содержащие критерии разделения, но до этого у меня были худшие результаты, чем в неразмеченной таблице.Я использовал эту ссылку, чтобы решить мою проблему с разделами Проверка пропуска разделов диапазона
Из того, что я вижу сейчас, основным узким местом является GROUP BY, который увеличивает стоимость с 34000 до 85 000, чтоболее чем вдвое.У кого-нибудь есть идеи по поводу этого?