From: | Gavin Flower <GavinFlower(at)archidevsys(dot)co(dot)nz> |
---|---|
To: | Kevin Grittner <kgrittn(at)ymail(dot)com>, James David Smith <james(dot)david(dot)smith(at)gmail(dot)com>, PGSQL-Novice <pgsql-novice(at)postgresql(dot)org> |
Subject: | Re: Update with last known location? |
Date: | 2014-01-28 23:15:28 |
Message-ID: | 52E83A10.8090009@archidevsys.co.nz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
On 29/01/14 11:00, Kevin Grittner wrote:
> James David Smith <james(dot)david(dot)smith(at)gmail(dot)com> wrote:
>
>> Given the data is so large I don't want to be taking the data out
>> to a CSV or whatever and then loading it back in. I'd like to do
>> this within the database using SQL. I thought I would be able to
>> do this using a LOOP to be honest.
> I would be amazed if you couldn't do this with a single UPDATE
> statement. I've generally found declarative forms of such work to
> be at least one order of magnitude faster than going to either a PL
> or a script approach. I would start by putting together a SELECT
> query using window functions and maybe a CTE or two to list all the
> primary keys which need updating and the new values they should
> have. Once that SELECT was looking good, I would put it in the
> FROM clause of an UPDATE statement.
>
> That should work, but if you are updating a large percentage of the
> table, I would go one step further before running this against the
> production tables. I would put a LIMIT on the above-mentioned
> SELECT of something like 10000 rows, and script a loop that
> alternates between the UPDATE and a VACUUM ANALYZE on the table.
>
> --
> Kevin Grittner
> EDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
James, you might consider dropping as many indexes on the table as you
safely can, and rebuilding them after the mass update. If you have lots
of such indexes, you will find this apprtoach to be a lot faster.
Cheers,
Gavin
From | Date | Subject | |
---|---|---|---|
Next Message | James David Smith | 2014-01-29 12:20:27 | Re: Update with last known location? |
Previous Message | Kevin Grittner | 2014-01-28 22:00:38 | Re: Update with last known location? |