Thread: Indexes (Disk space)
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.
---------- 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.
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 >
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 > > >
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 >>> >> >
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
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
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