Thread: Size of tuples

Size of tuples

From
"Alex Turner"
Date:
I have a table whose definition is basically

create table foo (
a int,
b int,
c int,
d date
);

and when fully populated, select relpages*8192::long/reltuples from pg_class where relname='foo';
gives around 52.  Why is it so wide when there are only 4*4=16 bytes of actual data?
The table was populated in one big go, and there have been 0 deletes or updates, althought I did do a few truncates, but I thought that basically zeroed everything?

Alex.

Re: Size of tuples

From
Ron Johnson
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/09/06 19:10, Alex Turner wrote:
> I have a table whose definition is basically
>
> create table foo (
> a int,
> b int,
> c int,
> d date
> );
>
> and when fully populated, select relpages*8192::long/reltuples from
> pg_class
> where relname='foo';
> gives around 52.  Why is it so wide when there are only 4*4=16 bytes of
> actual data?

http://www.postgresql.org/docs/faqs.FAQ.html#item4.5

   23  row header (no OIDs)
 + 16  your row size
 +  4  page pointer
   --
   43

I'd guess that the extra 4 bytes is from the null bits, page
overhead, etc.

- --
Ron Johnson, Jr.
Jefferson LA  USA

Is "common sense" really valid?
For example, it is "common sense" to white-power racists that
whites are superior to blacks, and that those with brown skins
are mud people.
However, that "common sense" is obviously wrong.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFKvWNS9HxQb37XmcRAuadAKDTDW3nSap3VutXXZB1vHnAFXMd8QCeIqpc
vMEiTn+MTBeP6wEkLO3zdwI=
=VeUp
-----END PGP SIGNATURE-----

Re: Size of tuples

From
"Alex Turner"
Date:
Awesome - thank you!

Alex

On 10/9/06, Ron Johnson <ron.l.johnson@cox.net> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 10/09/06 19:10, Alex Turner wrote:
> I have a table whose definition is basically
>
> create table foo (
> a int,
> b int,
> c int,
> d date
> );
>
> and when fully populated, select relpages*8192::long/reltuples from
> pg_class
> where relname='foo';
> gives around 52.  Why is it so wide when there are only 4*4=16 bytes of
> actual data?

http://www.postgresql.org/docs/faqs.FAQ.html#item4.5

   23  row header (no OIDs)
+ 16  your row size
+  4  page pointer
   --
   43

I'd guess that the extra 4 bytes is from the null bits, page
overhead, etc.

- --
Ron Johnson, Jr.
Jefferson LA  USA

Is "common sense" really valid?
For example, it is "common sense" to white-power racists that
whites are superior to blacks, and that those with brown skins
are mud people.
However, that "common sense" is obviously wrong.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFKvWNS9HxQb37XmcRAuadAKDTDW3nSap3VutXXZB1vHnAFXMd8QCeIqpc
vMEiTn+MTBeP6wEkLO3zdwI=
=VeUp
-----END PGP SIGNATURE-----

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Re: Size of tuples

From
Ron Johnson
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You know, I'd have sworn that I changed "extra 4" to "extra 9"

Sorry.

On 10/10/06 12:49, Alex Turner wrote:
> Awesome - thank you!
>
> Alex
>
> On 10/9/06, *Ron Johnson* <ron.l.johnson@cox.net
> <mailto:ron.l.johnson@cox.net>> wrote:
>
> On 10/09/06 19:10, Alex Turner wrote:
>> I have a table whose definition is basically
>
>> create table foo (
>> a int,
>> b int,
>> c int,
>> d date
>> );
>
>> and when fully populated, select relpages*8192::long/reltuples from
>> pg_class
>> where relname='foo';
>> gives around 52.  Why is it so wide when there are only 4*4=16
> bytes of
>> actual data?
>
> http://www.postgresql.org/docs/faqs.FAQ.html#item4.5
>
>    23  row header (no OIDs)
> + 16  your row size
> +  4  page pointer
>    --
>    43
>
> I'd guess that the extra 4 bytes is from the null bits, page
> overhead, etc.


- --
Ron Johnson, Jr.
Jefferson LA  USA

Is "common sense" really valid?
For example, it is "common sense" to white-power racists that
whites are superior to blacks, and that those with brown skins
are mud people.
However, that "common sense" is obviously wrong.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFLAysS9HxQb37XmcRAuFYAJ9tQ6sQIJ/WSX+L7JUkxYwRFypdBACdFmuT
YwZV6SW2TBLp4UqrofQpExk=
=OHjG
-----END PGP SIGNATURE-----