Проблема с выборкой из большой таблицы

12345ш
Дата: 24.05.2012 10:39:41
Есть база с накапливающейся статистикой, 30 гб, в основном одна таблица 140 млн записей. select count (*) делался 43 мин. Сгруппированные данные за период, вообще получить не могу - терпенья не хватает . Как можно оптимизировать работу с такой базой?
oaken
Дата: 24.05.2012 10:55:30
12345ш
Есть база с накапливающейся статистикой, 30 гб, в основном одна таблица 140 млн записей. select count (*) делался 43 мин. Сгруппированные данные за период, вообще получить не могу - терпенья не хватает . Как можно оптимизировать работу с такой базой?
Создать для таблички необходимые индексы, OLAP.
Dimitry Sibiryakov
Дата: 24.05.2012 10:55:40

12345ш
Как можно оптимизировать работу с такой базой?

Ты хочешь чтобы тебе тут процитировали все статьи с
http://ibase.ru/develop.htm#performance ? Нет уж, сам их читай.

Posted via ActualForum NNTP Server 1.5

pastor
Дата: 24.05.2012 10:56:29
12345ш,

1. сколько времени занимает простое чтение файла этого размера на Вашей системе?

2. исправлять ошибки проектирования.
12345ш
Дата: 24.05.2012 11:14:02
Нужные индексы есть, в простейшем случае отбор осуществляется по полю timestamp:
WHERE
(stat.DTIME >= :n1)
and
(stat.DTIME < :n2)
Количество инсертов а таблицу 10-100 в секунду
Ivan_Pisarevsky
Дата: 24.05.2012 11:27:48
12345ш
Как можно оптимизировать работу с такой базой?
Ты как-то конкретизируй вопросы, а пока можно посоветовать только "нанять программиста".

Что за железо ? что есть и как хочется? конкретные запросы которые тормозят планы ДДЛ и тп. рекомендуемый формат вопроса есть в прилепленной теме.

12345ш
таблица 140 млн записей. select count (*) делался 43 мин
Это спорт такой знать кол-во записей? ну 43 минуты и что с того?
12345ш
Дата: 24.05.2012 11:42:55
Наверное, как мне тут сказали про olap и ошибки проектирования, стоит периодически брать данные и укладывать их по необходимым временным интервалам и группам в отдельные таблицы (базу), табличку первичных данных чистить от устаревших записей.
Евгений, Екатеринбург
Дата: 24.05.2012 11:48:38
12345ш
Наверное, как мне тут сказали про olap и ошибки проектирования, стоит периодически брать данные и укладывать их по необходимым временным интервалам и группам в отдельные таблицы (базу), табличку первичных данных чистить от устаревших записей.

Объясни что за структура данных, почему требуется агрегат по такому большому числу записей, DDL таблицы и т.д. А так выяснилось, что часть записей являются устаревшими и могут быть удалены, откуда бы мы это раньше узнали?
Может вообще можно завести таблицу интервалов и если требуется только агрегат за прошедший период в таблице интервалов хранить значение этого агрегата вычисленное за прошедший период, а само вычисление агрегата делать когда нагрузка на базу минимальна, может быть ночью сервер простаивает?
12345ш
Дата: 24.05.2012 11:54:26
Ivan_Pisarevsky,
Простейший запрос тормозит
SELECT stat.SUV, SUM( stat.IS ) SUM_OF_IS, SUM( stat.IV ) SUM_OF_IV
FROM stat
WHERE
(
(stat.DTIME >= :n1)
and
(stat.DTIME < :n2)
)
Plan:
--------------------------------------------------------------------------------
SORT ((STAT INDEX (STAT_IDX1)))

Выборка за месяц, возвращаемых записей примерно 10000, прошлый раз делал, ждал выплнения несколько часов, сейчас вообще не дождался
Железо - двухпроц xeon 2006 г, 4 гига памяти 10 рэйд сата
Dimitry Sibiryakov
Дата: 24.05.2012 12:14:30

12345ш
Простейший запрос тормозит

Ну, начнём с того, что он вообще не может работать из-за отсутствия кляузы group by.

Posted via ActualForum NNTP Server 1.5