From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=BAYES_40,DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 Message-ID: <4DA689C9.9000609@bgc.perm.ru> Date: Thu, 14 Apr 2011 11:44:41 +0600 From: =?KOI8-R?Q?=E4=CD=C9=D4=D2=C9=CA_=E4=C5=C7=D4=D1=D2=C5=D7?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.16pre) Gecko/20110308 Thunderbird/3.1.10pre MIME-Version: 1.0 To: ALT Linux Sisyphus discussions References: <4DA67A0D.2090605@bgc.perm.ru> <4DA67C3D.5080209@mmedia2.kemsu.ru> <4DA67D2D.4010002@bgc.perm.ru> <4DA67FAC.7020605@mmedia2.kemsu.ru> In-Reply-To: <4DA67FAC.7020605@mmedia2.kemsu.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [sisyphus] =?koi8-r?b?1MXeo9QgcHNxbD8=?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2011 05:44:50 -0000 Archived-At: List-Archive: List-Post: 14.04.2011 11:01, REAL пишет: > 14.04.2011 11:50, Дмитрий Дегтярев пишет: >> В Postgres Хранимые процедуры транзакционны поэтому каждая строка есть >> отдельная транзакция. > > Насколько я помню, это зависит от параметров соединения. По крайней > мере, так в Oracle и DB2, так, по идее, вообще по стандарту, если не > ошибаюсь. Если параметр autocommit установлен в false, то все > процедуры идут одной транзакцией вплоть до commit, rollback или > закрытия соединения. > все это влияет на работу сервера, а не клиента. проблема в клиенте. >>> А нельзя ли сделать без реконнектов, т.е. один коннект, а транзакций >>> много? Я в psql ни в зуб ногой, но вообще-то нормальные СУБД обязаны >>> уметь такое. >>> >> Так и делаю, но почему то съедает память. > > Вот от этого и мои подозрения, что отключен autocommit. Или, как > вариант, можно перед каждым инсертом поиграться со времем ожидания > (должно быть что-то вроде аналога sleep в shell). > psql разбивает команды по ";" и отправляет по одной на сервер в случае если сервер готов принять очередную..я не думаю что psql будет брать с диска данные и ложить в память если сервер не принимает команды, т.к. не выполнил ещё предыдущую.