Re: Row size overhead

From: "Pavan Deolasee" <pavan(dot)deolasee(at)gmail(dot)com>
To: "Zubkovsky, Sergey" <Sergey(dot)Zubkovsky(at)transas(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Row size overhead
Date: 2008-03-19 17:23:03
Message-ID: 2e78013d0803191023v53b355c8td492eac17892bc9c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

2008/3/19 Zubkovsky, Sergey <Sergey(dot)Zubkovsky(at)transas(dot)com>:

>
> Simple calculations show that each row occupies 76 bytes approximately.
>
> But anticipated row size would be 41 or near.
>

You haven't mentioned PG version. For 8.2 onwards, the tuple header is
23 bytes. Add another 4 bytes for one line pointer for each row. If you have
null values, another 5 bytes for null bitmap and alignment. Plus add few bytes
for page header and any unusable space in a page (because a row can not
fit in the remaining space).

Also ISTM that you might be loosing some space because of alignment
in the tuple itself. Try moving booleans and char(3) at the end. There is not
much you can do with other overheads.

Thanks,
Pavan

--
Pavan Deolasee
EnterpriseDB http://www.enterprisedb.com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Fetter 2008-03-19 17:26:34 Re: array_cat without duplicity
Previous Message Zubkovsky, Sergey 2008-03-19 16:59:52 Row size overhead