Thread: Indexes (Disk space)

Indexes (Disk space)

From
jose fuenmayor
Date:
Hi all,
I have the following question.
Is there anyway for me to know how much space on disk will ocupy an
index, created in a determined row or rows of a table?, anything like
a rule, formula, calculation? that allow me to know in advance how
much space will the index use before actually created it.

I aprecciate all the help you can give me

Thanks in advance.

Fwd: Indexes (Disk space)

From
jose fuenmayor
Date:
---------- Forwarded message ----------
From: jose fuenmayor <jafn82@gmail.com>
Date: Aug 22, 2005 1:37 PM
Subject: Indexes (Disk space)
To: pgsql-admin@postgresql.org


Hi all,
I have the following question.
Is there anyway for me to know how much space on disk will ocupy an
index, created in a determined row or rows of a table?, anything like
a rule, formula, calculation? that allow me to know in advance how
much space will the index use before actually created it.

I aprecciate all the help you can give me

Thanks in advance.

Re: Fwd: Indexes (Disk space)

From
Aldor
Date:
select * from pg_class;

or

select relname, relpages from pg_class where relname = '[index-name]';

the pages give you the information about the space the index uses, a
page has 8kb.

[...]Every table and index is stored as an array of pages of a fixed
size (usually 8Kb, although a different page size can be selected when
compiling the server). In a table, all the pages are logically
equivalent, so a particular item (row) can be stored in any page. In
indexes, the first page is generally reserved as a metapage holding
control information, and there may be different types of pages within
the index, depending on the index access method. [...]

Source-URL:
http://www.postgresql.org/docs/8.0/interactive/storage-page-layout.html

jose fuenmayor wrote:
> ---------- Forwarded message ----------
> From: jose fuenmayor <jafn82@gmail.com>
> Date: Aug 22, 2005 1:37 PM
> Subject: Indexes (Disk space)
> To: pgsql-admin@postgresql.org
>
>
> Hi all,
> I have the following question.
> Is there anyway for me to know how much space on disk will ocupy an
> index, created in a determined row or rows of a table?, anything like
> a rule, formula, calculation? that allow me to know in advance how
> much space will the index use before actually created it.
>
> I aprecciate all the help you can give me
>
> Thanks in advance.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
>        subscribe-nomail command to majordomo@postgresql.org so that your
>        message can get through to the mailing list cleanly
>

Re: Fwd: Indexes (Disk space)

From
jose fuenmayor
Date:
Ok I understand but I need to know the size of the index before i create it
I need to know  how much space it will ocupy (before actually create
the index, having the information of the table on wich I will build
the index), is this possible?
thanks in advance to everyone that can help me.

On 8/23/05, Aldor <an@mediaroot.de> wrote:
> select * from pg_class;
>
> or
>
> select relname, relpages from pg_class where relname = '[index-name]';
>
> the pages give you the information about the space the index uses, a
> page has 8kb.
>
> [...]Every table and index is stored as an array of pages of a fixed
> size (usually 8Kb, although a different page size can be selected when
> compiling the server). In a table, all the pages are logically
> equivalent, so a particular item (row) can be stored in any page. In
> indexes, the first page is generally reserved as a metapage holding
> control information, and there may be different types of pages within
> the index, depending on the index access method. [...]
>
> Source-URL:
> http://www.postgresql.org/docs/8.0/interactive/storage-page-layout.html
>
> jose fuenmayor wrote:
> > ---------- Forwarded message ----------
> > From: jose fuenmayor <jafn82@gmail.com>
> > Date: Aug 22, 2005 1:37 PM
> > Subject: Indexes (Disk space)
> > To: pgsql-admin@postgresql.org
> >
> >
> > Hi all,
> > I have the following question.
> > Is there anyway for me to know how much space on disk will ocupy an
> > index, created in a determined row or rows of a table?, anything like
> > a rule, formula, calculation? that allow me to know in advance how
> > much space will the index use before actually created it.
> >
> > I aprecciate all the help you can give me
> >
> > Thanks in advance.
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: if posting/reading through Usenet, please send an appropriate
> >        subscribe-nomail command to majordomo@postgresql.org so that your
> >        message can get through to the mailing list cleanly
> >
>

Re: Fwd: Indexes (Disk space)

From
Aldor
Date:
I don't think this is possible...

you could try a explain on the create
index command but... this is like playinng lotto, didn't try it and
don't have the time to try it;-)

i think getting the size is only possible after creating the index,
because when the index is created it will gather the information about
the data indexed.

if this answer is not enough: why do you need to know the size of the
index BEFORE creating it?

jose fuenmayor wrote:
> Ok I understand but I need to know the size of the index before i create it
> I need to know  how much space it will ocupy (before actually create
> the index, having the information of the table on wich I will build
> the index), is this possible?
> thanks in advance to everyone that can help me.
>
> On 8/23/05, Aldor <an@mediaroot.de> wrote:
>
>>select * from pg_class;
>>
>>or
>>
>>select relname, relpages from pg_class where relname = '[index-name]';
>>
>>the pages give you the information about the space the index uses, a
>>page has 8kb.
>>
>>[...]Every table and index is stored as an array of pages of a fixed
>>size (usually 8Kb, although a different page size can be selected when
>>compiling the server). In a table, all the pages are logically
>>equivalent, so a particular item (row) can be stored in any page. In
>>indexes, the first page is generally reserved as a metapage holding
>>control information, and there may be different types of pages within
>>the index, depending on the index access method. [...]
>>
>>Source-URL:
>>http://www.postgresql.org/docs/8.0/interactive/storage-page-layout.html
>>
>>jose fuenmayor wrote:
>>
>>>---------- Forwarded message ----------
>>>From: jose fuenmayor <jafn82@gmail.com>
>>>Date: Aug 22, 2005 1:37 PM
>>>Subject: Indexes (Disk space)
>>>To: pgsql-admin@postgresql.org
>>>
>>>
>>>Hi all,
>>>I have the following question.
>>>Is there anyway for me to know how much space on disk will ocupy an
>>>index, created in a determined row or rows of a table?, anything like
>>>a rule, formula, calculation? that allow me to know in advance how
>>>much space will the index use before actually created it.
>>>
>>>I aprecciate all the help you can give me
>>>
>>>Thanks in advance.
>>>
>>>---------------------------(end of broadcast)---------------------------
>>>TIP 1: if posting/reading through Usenet, please send an appropriate
>>>       subscribe-nomail command to majordomo@postgresql.org so that your
>>>       message can get through to the mailing list cleanly
>>>
>>
>

Re: Fwd: Indexes (Disk space)

From
"Jim C. Nasby"
Date:
I think the best you could do would be to estimate it based on index key
size and knowing the overhead for the index structure. Note that it
probably wouldn't be too hard to codify this; it's just that no one has
done it.

http://www.postgresql.org/docs/8.0/interactive/storage.html would be a
good start at figuring out how much space the index will take.

On Wed, Aug 24, 2005 at 02:51:30PM +0100, Aldor wrote:
> I don't think this is possible...
>
> you could try a explain on the create
> index command but... this is like playinng lotto, didn't try it and
> don't have the time to try it;-)
>
> i think getting the size is only possible after creating the index,
> because when the index is created it will gather the information about
> the data indexed.
>
> if this answer is not enough: why do you need to know the size of the
> index BEFORE creating it?
>
> jose fuenmayor wrote:
> >Ok I understand but I need to know the size of the index before i create it
> >I need to know  how much space it will ocupy (before actually create
> >the index, having the information of the table on wich I will build
> >the index), is this possible?
> >thanks in advance to everyone that can help me.
> >
> >On 8/23/05, Aldor <an@mediaroot.de> wrote:
> >
> >>select * from pg_class;
> >>
> >>or
> >>
> >>select relname, relpages from pg_class where relname = '[index-name]';
> >>
> >>the pages give you the information about the space the index uses, a
> >>page has 8kb.
> >>
> >>[...]Every table and index is stored as an array of pages of a fixed
> >>size (usually 8Kb, although a different page size can be selected when
> >>compiling the server). In a table, all the pages are logically
> >>equivalent, so a particular item (row) can be stored in any page. In
> >>indexes, the first page is generally reserved as a metapage holding
> >>control information, and there may be different types of pages within
> >>the index, depending on the index access method. [...]
> >>
> >>Source-URL:
> >>http://www.postgresql.org/docs/8.0/interactive/storage-page-layout.html
> >>
> >>jose fuenmayor wrote:
> >>
> >>>---------- Forwarded message ----------
> >>>From: jose fuenmayor <jafn82@gmail.com>
> >>>Date: Aug 22, 2005 1:37 PM
> >>>Subject: Indexes (Disk space)
> >>>To: pgsql-admin@postgresql.org
> >>>
> >>>
> >>>Hi all,
> >>>I have the following question.
> >>>Is there anyway for me to know how much space on disk will ocupy an
> >>>index, created in a determined row or rows of a table?, anything like
> >>>a rule, formula, calculation? that allow me to know in advance how
> >>>much space will the index use before actually created it.
> >>>
> >>>I aprecciate all the help you can give me
> >>>
> >>>Thanks in advance.
> >>>
> >>>---------------------------(end of broadcast)---------------------------
> >>>TIP 1: if posting/reading through Usenet, please send an appropriate
> >>>      subscribe-nomail command to majordomo@postgresql.org so that your
> >>>      message can get through to the mailing list cleanly
> >>>
> >>
> >
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>

--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software        http://pervasive.com        512-569-9461

Recovering Database

From
"Napolean"
Date:
All:

I am performing evaluation of Postgres 8.0 Database.

Is there a way to recover all the data from "Data" folder, if at all
anything happens.

Could any of you point me in the right direction is appreciated.

thanks
Napolean



Re: Recovering Database

From
Michael Fuhr
Date:
On Wed, Aug 24, 2005 at 07:43:57PM -0400, Napolean wrote:
>
> I am performing evaluation of Postgres 8.0 Database.

As long as you're doing an evaluation, consider also evaluating the
upcoming 8.1 beta.  Watch for the announcement within the next few
days.

> Is there a way to recover all the data from "Data" folder, if at all
> anything happens.

See the "Backup and Restore" chapter of the documentation:

http://www.postgresql.org/docs/8.0/static/backup.html

--
Michael Fuhr