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=-1.5 required=5.0 tests=BAYES_00,DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 Message-ID: <4DA67A0D.2090605@bgc.perm.ru> Date: Thu, 14 Apr 2011 10:37:33 +0600 From: =?UTF-8?B?0JTQvNC40YLRgNC40Lkg0JTQtdCz0YLRj9GA0LXQsg==?= 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 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: [sisyphus] =?utf-8?b?0YLQtdGH0ZHRgiBwc3FsPw==?= 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 04:37:45 -0000 Archived-At: List-Archive: List-Post: Добрый день! Есть задача залить данные из файла некоего формата в субд. С помощью awk формирую строки вида select myprocedure(param1, param2, ..., paramn); процедура раскидывает данные по таблицам всего строк 8-9 миллионов в день нужно загонять в базу. Если делать так $ awk '{print ....}' | psql -U user -d db -h host.local то через пару минут psql уже занял 1,5 ГБ ОЗУ и пришлось прервать, т.к. всё залезло в своп. если сформировать сначала файл(довольно быстро, 2-3 минуты), а потом psql -U user -d db -h host.local -f file.sql то занимает в ОЗУ всего 6Кб. Работает так минут 15, а затем начинает всё свопиться, смотрю память psql опять занял 1,5 Гб. Опять останавливаю. Утечка в psql? Или в либе какой? Как залить дамп размером 3Гб в базу? система последний sisyphus ЗЫ: сейчас заливаю так $ awk '{print ....}' | while read l; do echo $l | psql -U user -d db -h host.local done; это не реально долго из-за 8000000 лишних запусков psql, реконнектов к базе...