On Tue, Feb 5, 2013 at 3:33 PM, Geoff Winkless <pgsqlad...@geoff.dj> wrote:

> Thanks for all the responses....
>
> On 5 February 2013 19:36, Rosser Schwarz <rosser.schw...@gmail.com> wrote:
>
>> On Tue, Feb 5, 2013 at 11:00 AM, Scott Mead <sco...@openscg.com> wrote:
>>
>>> Agreed, don't forget, you have indexes, free space, vacuum-able stuff,
>>> etc... all laying in your datafiles.  Your measurements are telling you
>>> what you have purely in a raw form.
>>>
>>
> Indexes are stored separately. There should be no free space (why would
> there be? FILLFACTOR is 100!) and I've vacuumed already.
>
>
Have you done any updates / deletes on this dataset? Or is this just pure
insert / bulkload?  If you haven't done any update / delete, the following
doesn't help at all, but:

Vacuuming doesn't reclaim space, it only marks it as available for re-use
for other updates.  You can compact your datafiles by either a (WARNING)
VACUUM FULL or CLUSTER.  Just remember, these both require a full table
lock during their execution.

--Scott Mead




> Additionally, postgres has a number of "metadata" columns (e.g., xmin,
>> xmax, cmin, cmax, &c).  Those can add up, particularly when their net size
>> is greater than the user data size of a row.
>>
>
> That's a fair point.
>
> 611MB (actual disk size) - 138MB (summed data size) = 483MB
> 11M rows (ish).
>
> That's nearly 48 bytes extra per row.
>
> http://www.postgresql.org/docs/9.2/static/storage-page-layout.html gives
> detail...
>
> Let's say around 249MB (23 bytes per row, according to that page) for the
> columns you mention, so that leaves 234MB unexplained.
>
> I can see 44 bytes per page header (given 5 columns, so 20 bytes
> ItemIdData, with 24 bytes PageHeaderData). Given page size of 8kb that
> would imply page headers of about 3.3MB over a 611MB table.
>
> Even with some bytes for alignment I'm Still not seeing where 230MB (more
> than the space taken by the data itself) of my disk is gone.
>
> Thanks!
>
> Geoff
>

Reply via email to