Обсуждение: Calculation of Database Size in postgres

Поиск
Список
Период
Сортировка

Calculation of Database Size in postgres

От
pavan95
Дата:
Hi all,

In postgres for knowing the size of a database we generally use the system
administration function "pg_database_size('database_name')".

I am curious to know how does this calculate internally from the pages(free
pages/fragmented pages/full pages) stored in the disk?

Thanks in advance!

Regards,
Pavan



--
Sent from: http://www.postgresql-archive.org/PostgreSQL-admin-f2076596.html


Re: Calculation of Database Size in postgres

От
Laurenz Albe
Дата:
pavan95 wrote:
> In postgres for knowing the size of a database we generally use the system
> administration function "pg_database_size('database_name')".
> 
> I am curious to know how does this calculate internally from the pages(free
> pages/fragmented pages/full pages) stored in the disk?

It just adds up the sizes of the files that make up the database.

Yours,
Laurenz Albe


Re: Calculation of Database Size in postgres

От
pavan95
Дата:
Hi Laurenz,

Do you know how does it calculate internally using what functions or what
system catalogs or whatever?

Regards,
Pavan



--
Sent from: http://www.postgresql-archive.org/PostgreSQL-admin-f2076596.html


Re: Calculation of Database Size in postgres

От
Laurenz Albe
Дата:
pavan95 wrote:
> Do you know how does it calculate internally using what functions or what
> system catalogs or whatever?

The functions are in backend/utils/adt/dbsize.c, note in particular
db_dir_size which walks through a directory and adds up the sizes of
all files therein.

Yours,
Laurenz Albe



Re: Calculation of Database Size in postgres

От
pavan95
Дата:
Ok, In that case some data files(which in turn consists pages) might be
partially filled. 

In that case the size of the database with data will be different to the
size of the database calculated with respect to files size on disk. 


So how to calculate the size of only data and not the free space in the
database?


Regards,
Pavan



--
Sent from: http://www.postgresql-archive.org/PostgreSQL-admin-f2076596.html


Re: Calculation of Database Size in postgres

От
Stephen Frost
Дата:
Greetings,

* pavan95 (pavan.postgresdba@gmail.com) wrote:
> Ok, In that case some data files(which in turn consists pages) might be
> partially filled.
>
> In that case the size of the database with data will be different to the
> size of the database calculated with respect to files size on disk.
>
> So how to calculate the size of only data and not the free space in the
> database?

You can look at the free space map using the pg_freespacemap extension,
or you can use the pgstattuple extension to look at free space in both
the heap and the indexes.  Note that pgstattuple will scan the table,
while the freespacemap extension just looks at the FSM.

Thanks!

Stephen

Вложения