Re: postgres slowdown question
От | John A Meinel |
---|---|
Тема | Re: postgres slowdown question |
Дата | |
Msg-id | 4266E746.5010508@arbash-meinel.com обсуждение исходный текст |
Ответ на | Re: postgres slowdown question ("Shachindra Agarwal" <sagarwal@metallect.com>) |
Список | pgsql-performance |
Shachindra Agarwal wrote: >Thanks for the note. Please see my responses below: > > ... > > >>>We are using JDBC which supports 'inserts' and 'transactions'. We are >>> >>> >using both. The business logic adds one business object at a time. Each >object is added within its own transaction. Each object add results in 5 >records in various tables in the the database. So, a commit is performed >after every 5 inserts. > > > Well, 5 inserts per commit is pretty low. It would be nice to see more like 100 inserts per commit. Would it be possible during the "discovery" phase to put the begin/commit logic a little bit higher? Remember, each COMMIT requires at least one fsync. (I realize you have fsync off for now). But commit is pretty expensive. >Also, it sounds like you have a foreign key issue. That as things fill >up, the foreign key reference checks are slowing you down. >Are you using ANALYZE as you go? A lot of times when you only have <1000 > >rows a sequential scan is faster than using an index, and if you don't >inform postgres that you have more rows, it might still use the old >seqscan. > > > >>>This could be the issue. I will start 'analyze' in a cron job. I will >>> >>> >update you with the results. > >There are other possibilities, but it would be nice to know about your >table layout, and possibly an EXPLAIN ANALYZE of the inserts that are >going slow. > >John >=:-> > >PS> I don't know if JDBC supports COPY, but it certainly should support >transactions. > > Let us know if ANALYZE helps. If you are not deleting or updating anything, you probably don't need to do VACUUM ANALYZE, but you might think about it. It is a little more expensive since it has to go to every tuple, rather than just a random sampling. John =:->
Вложения
В списке pgsql-performance по дате отправления: