LINUX.ORG.RU

оптимизация postgres stored procedure


0

0

Дано:
	БД в PostgreSQL;
	на одной таблице взведен триггер before insert for each row;
	триггер в зависимости от полученны данных обновляет/создает записи в других таблицах;
	проделал тест (инсертил 256к записей) with/without trigger разница примерно в 10ть раз :( т.е. триггер аццки тормозит а данные идут почти в реалтайм :( и по времени обработки ну никак не укладываюсь :(((;

Требуется:
	Выявить узкие места в сохраненке и оптимизировать;

кто какие методы может посоветовать???

★★

explain

а вообще... если в риалтаеме то может лучше пересмотреть концепцию?

например сначала писать на винт в "сыром" виде, а потом по крону в БД
пихать?

ну или copy заюзать...

anonymous
()
Ответ на: комментарий от anonymous

еще

по оптимизации самого постгресса есть неплохая дока.
ищи в инете.

можно отрубить fsync (но если отрубится электричество или еще какой глюк, то СЗБ)

можно по разным винтам раскидать xlog и данные

anonymous
()
Ответ на: комментарий от anonymous

>> explain

>а вообще... если в риалтаеме то может лучше пересмотреть концепцию?

>например сначала писать на винт в "сыром" виде, а потом по крону в БД >пихать?

>ну или copy заюзать...

так и реализованно :-) каждые 5ть минут выгребаются сохраненные в "архив" данные и инсертяца в БД... реалтайм следует читать как "реалтайм" :)

тюнинг самого PostgreSQL проведен, загвоздка именно в хранимке... можеш подскажеш как например заставить explain analyze insert blablabla анализировать исполнение хранимки т.е. детальный разбор ее исполнения а не просто выдавать время ее отработки???

Ex ★★
() автор топика
Ответ на: комментарий от Ex

Сразу скажу: я не специалист в PostgreSQL и в других СУБД.

1)но ИМХО postgresql для realtime insert'ов слабо подходит. (движок версионый)
2)Где-то на сайте постгресса читал, что если данных много,
то лучше юзать copy. (но тебе это не подходит)
как насчет sqlite?

а насчет explain'a: а если взять и руками прогнать куски твоего запроса с ним (explain analyze)?

может задачу стоит пересмотреть?
если расскажешь, может, что вместе и придумаем...

anonymous
()
Ответ на: комментарий от Ex

На чем процедура написана (я, мягко говоря, не спец в Pg, но там же куча языков поддерживается)? Может быть, есть какая-нибудь возможность прицепиться к ней родным для этого языка профайлером?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.