Received: from localhost (maia-3.hub.org [200.46.204.184]) by postgresql.org (Postfix) with ESMTP id 1F33B9FB1E5 for ; Fri, 5 Jan 2007 23:13:52 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.184]) (amavisd-new, port 10024) with ESMTP id 17571-09 for ; Fri, 5 Jan 2007 23:13:35 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from 66-226-76-106.dedicated.abac.net (66-226-76-106.dedicated.abac.net [66.226.76.106]) by postgresql.org (Postfix) with ESMTP id 9B8C69FB1E3 for ; Fri, 5 Jan 2007 23:13:40 -0400 (AST) Received: (qmail 18650 invoked by uid 2020); 5 Jan 2007 20:20:11 -0800 Received: from wsip-70-167-125-69.sd.sd.cox.net (HELO ?192.168.0.3?) (70.167.125.69) by 192.168.0.4 with (DHE-RSA-AES256-SHA encrypted) SMTP; 5 Jan 2007 20:20:10 -0800 Message-ID: <459F1421.9090905@modgraph-usa.com> Date: Fri, 05 Jan 2007 19:14:41 -0800 From: "Craig A. James" User-Agent: Thunderbird 1.5.0.9 (X11/20061206) MIME-Version: 1.0 To: Guy Rouillier CC: PostgreSQL Performance Subject: Re: High update activity, PostgreSQL vs BigDBMS References: <45935A49.6080602@burntmail.com> <459F0EA6.30403@burntmail.com> In-Reply-To: <459F0EA6.30403@burntmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=2.897 tagged_above=0 required=5 tests=AWL, BAYES_50, HELO_DYNAMIC_IPADDR2 X-Spam-Level: ** X-Archive-Number: 200701/74 X-Sequence-Number: 22675 Guy Rouillier wrote: > I've got back access to my test system. I ran another test run with the > same input data set. This time I put pg_xlog on a different RAID volume > (the unused one that I suspect is a software RAID), and I turned > fsync=off in postgresql.conf. I left the rest of the configuration > alone (all foreign keys removed), etc. Unfortunately, this only dropped > elapsed time down to about 28000 seconds (from 30000), still > significantly more than BigDBMS. Additional info inline below. Although tuning is extremely important, you also have to look at the application itself. I discovered (the hard way) that there's simply no substitute for a bit of redesign/rewriting of the schema and/or SQL statements. Many of us who "grew up" on Oracle assume that their SQL is standard stuff, and that Oracle's optimizer is "the way it's done." But in fact most Oracle applications are tweaked and tuned to take advantage of Oracle's strengths and avoid its weaknesses. If you designed an application from the ground up to use Postgres, then migrated to Oracle, you would probably be equally frustrated by Oracle's poor performance on your Postgres-tuned application. I don't know if you have access to the application's SQL, or the time to experiment a bit, but unless your schema is trival and your SQL is boneheaded simple, you're not going to get equal performance from Postgres until you do some analysis of your application under real-world conditions, and optimize the problem areas. In my case, I found just a few specific SQL constructs that, with a bit of tuning, made massive differences in performance. Craig