powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как оптимизировать запросы с агрегированием sum
7 сообщений из 7, страница 1 из 1
Как оптимизировать запросы с агрегированием sum
    #33637234
mxlPostgres
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как оптимизировать запросы с агрегированием sum? Сумма в Postgres работает оч медленно при большом кол-ве записей. Поможет ли установка версии 8.1,сейчас 7.4?
...
Рейтинг: 0 / 0
Как оптимизировать запросы с агрегированием sum
    #33637281
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mxlPostgresпри большом кол-ве записейвстречается подход, обзываемый денормализацией. (хранение предварительно подсчитанных по неким поддиапазонам сумм). Правда он эффективен только тогда, когда суммы приложением считаются по некоторым сплошным выборкам, выбираемом всегда в одном и том же порядке, и различающимся разве границами. (Например в бух учете). Иначе таких сумм потребуется считать чрезвычайно много.
...
Рейтинг: 0 / 0
Как оптимизировать запросы с агрегированием sum
    #33637419
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mxlPostgresКак оптимизировать запросы с агрегированием sum? Сумма в Postgres работает оч медленно при большом кол-ве записей. Поможет ли установка версии 8.1,сейчас 7.4?

Не поможет. Индексы при работе с аггрегатными функциями не используются.
...
Рейтинг: 0 / 0
Как оптимизировать запросы с агрегированием sum
    #33637724
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mxlPostgresКак оптимизировать запросы с агрегированием sum? Сумма в Postgres работает оч медленно при большом кол-ве записей. Поможет ли установка версии 8.1,сейчас 7.4?
ИМХО оптимизация только одна - увеличиваем количество памяти выделенной постгресу.
А переход на 8.1 с 7.4 делать все равно стоит т.к. улучшений много, и по мелочам набежать может достаточно много ускорений.
...
Рейтинг: 0 / 0
Как оптимизировать запросы с агрегированием sum
    #33637865
ilejn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mxlPostgresКак оптимизировать запросы с агрегированием sum? Сумма в Postgres работает оч медленно при большом кол-ве записей. Поможет ли установка версии 8.1,сейчас 7.4?

При большом количестве записей, участвующих в суммировании, или тормозящий эффект создается из-за наличия в таблице большого количества записей, вне зависимости от того, суммируются ли они?
...
Рейтинг: 0 / 0
Как оптимизировать запросы с агрегированием sum
    #33638886
mxlPostgres
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ilejn mxlPostgresКак оптимизировать запросы с агрегированием sum? Сумма в Postgres работает оч медленно при большом кол-ве записей. Поможет ли установка версии 8.1,сейчас 7.4?

При большом количестве записей, участвующих в суммировании, или тормозящий эффект создается из-за наличия в таблице большого количества записей, вне зависимости от того, суммируются ли они?
Простые выборки (без суммирования) делаются значительно быстрее.В таблице хранятся строки статистики трафика за каждый час и когда получаю сводную таблицу за месяц (уже по дням,то есть суммирование) запрос проходит 1,5 мин (4 млн записей). Как я понял,нужно при добавлении очередной партии строчек проводить INSERT INTO (создавать новую таблицу) и уже из нее брать суммированные данные? Это конечно может немного разгрузить БД,но если нужно смотреть за пред месяц или еще раньше,или суммировать не по дням,а по месяцу?
Слышал,что в Oracle есть фишка,что можно разбивать таблицы на части и хранить их как бы отдельно,например,сделать разбитие по месяцам и СУБД будет искать уже только в одной части.Есть ли подобное в Postgres?
...
Рейтинг: 0 / 0
Как оптимизировать запросы с агрегированием sum
    #33638905
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСлышал,что в Oracle есть фишка,что можно разбивать
таблицы на части и хранить их как бы отдельно,например,сделать
разбитие по месяцам и СУБД будет искать уже только в одной части.
Есть ли подобное в Postgres?

http://www.postgresql.org/docs/whatsnew
Код: plaintext
1.
2.
3.
4.
Table Partitioning: the query planner is now able to avoid scanning 
whole sections of a large table using a technique known as Constraint 
Exclusion. Similar to the Table Partitioning found in other database
 management systems, this feature improves both performance and 
data management for multi-gigabyte tables.

А вообще согласен с 4321 насчет хранения данных в агрегированом состоянии. Скажем делашь задание ночью, которое группирует данные с шагом 3-6 часов. Затем пишешь хранимку которой передаешь дату начала и конца.. Она все что может считает из агрегированной таблицы + досчитывает из обычной таблицы. Тем более, если интересует в первую очередь статистика по суткам то может оказаться так что эта хранимка будет обращаться только сводной таблицы.
+ Согласен Andrey Daeron, на сой взгляд PG 8 стал заметно шустрее 7.x.. А в 8.1 обещают еще 20% ускорение по сравнению 8.0.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как оптимизировать запросы с агрегированием sum
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]