2011-12-19 4 views
1

У меня есть таблица финансов (столбец: дата, месяц, квартал, amount_usd, col1, col2, col3).Запрос таблицы, содержащей миллионы строк из базы данных Oracle

Просто запрашивая ...

select sum(amount_usd) from finance 
group by date 

... занимает 7 сек

select sum(amount_usd) from finance 
group by month 

... занимает 6 сек

select sum(amount_usd) from finance 
group by quarter 

... занимает 5 сек

Итак, я подумал о Data Warehouse

Я создал временную размерность корня и иерархию как

  • дату как ребенок месяца
  • месяц, как ребенок квартала

Теперь я застрял ...

Что будет быть моим фактом? И как запрашивать данные из таблицы фактов?

Это может быть очень простой вопрос. Но я новичок в этом.

Благодаря

+1

Это большой шаг от «моих запросов выполняется медленно» до «Мне нужен хранилище данных». Сколько строк «миллионы», и вы уже пытались повысить производительность за счет использования индексирования, секционированных таблиц или других методов? Хранилище данных, вероятно, будет использовать очень похожие запросы к тем, которые вы описали, поэтому вам может потребоваться более конкретная информация о том, что вы ожидаете отсюда. – Pondlife

+1

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

+0

@Pondlife ... на самом деле я хотел знать .. как мои измерения помогают в производительности ... например, я создал временное разметку, но когда я его использую ... Таблица фактов может быть моей финансовой таблицей .. или я имею иметь отдельный ... и да, все индексирование там в таблице будет иметь примерно 1 миллион строк .... так что мои простые запросы занимают время и думают о наличии концепции хранилища данных ....Спасибо – Avi

ответ

6

"так что мое простое querys принимает время и мысль о необходимости данных складской концепции ..."

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

Однако я согласен с тем, что для пользователя OLTP, ожидающего обновления экрана, может возникнуть раздражение. Что вам нужно сделать, это настроить мелодию. Вы говорите, что у вас есть индексы: но если вы суммируете всю таблицу FINANCE, вы, вероятно, не хотите использовать индексы. Если у вас есть лицензия Enterprise Edition и несколько центральных процессоров с резервной мощностью, тогда параллельный запрос может быть лучше.

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

Смежные вопросы