[SQL] Droping indexes

2007-01-16 Thread Mario Behring
Hi all,

Please, if I drop all indexes from a table, can I recreate them after 
performing a vacuum full at this table? I mean, I do not know details about the 
indexes, so what I am asking is if I issue a REINDEX on this table, will it  
create the proper indexes again?

Please advise.

Thanks in advance.

Mario Behring




 

Never miss an email again!
Yahoo! Toolbar alerts you the instant new Mail arrives.
http://tools.search.yahoo.com/toolbar/features/mail/

Re: [SQL] Droping indexes

2007-01-16 Thread Mario Behring
Hi Tomas,

Thank you.

Please help me here.I am not a database guy...how do I use this 
CLUSTER command and what does it do? Please keep in mind that I do not have 
disk space left.

Also, please check the table I am talking about below:

opennms=# \d events
Tabela "public.events"
 Colunm  |Type | Modifyers
-+-+---
 eventid | integer | not null
 eventuei| character varying(256)  | not null
 nodeid  | integer |
 eventtime   | timestamp without time zone | not null
 eventhost   | character varying(256)  |
 eventsource | character varying(128)  | not null
 ipaddr  | character varying(16)   |
 eventdpname | character varying(12)   | not null
 eventsnmphost   | character varying(256)  |
 serviceid   | integer |
 eventsnmp   | character varying(256)  |
 eventparms  | text|
 eventcreatetime | timestamp without time zone | not null
 eventdescr  | character varying(4000) |
 eventloggroup   | character varying(32)   |
 eventlogmsg | character varying(256)  |
 eventseverity   | integer | not null
 eventpathoutage | character varying(1024) |
 eventcorrelation| character varying(1024) |
 eventsuppressedcount| integer |
 eventoperinstruct   | character varying(1024) |
 eventautoaction | character varying(256)  |
 eventoperaction | character varying(256)  |
 eventoperactionmenutext | character varying(64)   |
 eventnotification   | character varying(128)  |
 eventtticket| character varying(128)  |
 eventtticketstate   | integer |
 eventforward| character varying(256)  |
 eventmouseovertext  | character varying(64)   |
 eventlog| character(1)| not null
 eventdisplay| character(1)| not null
 eventackuser| character varying(256)  |
 ndices:ktime| timestamp without time zone |
"pk_eventid"primary key, btree (eventid)
"events_acktime_idx" btree (eventacktime)
"events_ackuser_idx" btree (eventackuser)
"events_display_idx" btree (eventdisplay)
"events_ipaddr_idx" btree (ipaddr)
"events_log_idx" btree (eventlog)
"events_nodeid_idx" btree (nodeid)
"events_serviceid_idx" btree (serviceid)
"events_severity_idx" btree (eventseverity)
"events_time_idx" btree (eventtime)
"events_uei_idx" btree (eventuei)
Restrictions of foreing key:
"fk_nodeid6" FOREIGN KEY (nodeid) REFERENCES node(nodeid) ON DELETE CASCADE


Thanks.

Mario Behring





- Original Message 
From: Tomas Vondra <[EMAIL PROTECTED]>
To: Mario Behring <[EMAIL PROTECTED]>
Sent: Tuesday, January 16, 2007 12:29:59 PM
Subject: Re: [SQL] Droping indexes

> Hi all,
> 
> Please, if I drop all indexes from a table, can I recreate them after 
> performing a vacuum full at this table? I mean, I do not know details 
> about the indexes, so what I am asking is if I issue a REINDEX on this 
> table, will it  create the proper indexes again?
> 
> Please advise.

No, if you drop them they're lost and you'll have to recreate them using 
CREATE INDEX. Being in your situation, I'd use CLUSTER instead of VACUUM 
+ REINDEX, as it basically does the same thing, plus it has several 
advantages related to performance.

Just think carefully which index would you use to cluster the table - 
the index associated with the primary key is generally a good choice.

Tomas

PS: Don't forget to analyze the table after that!








 

Need Mail bonding?
Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users.
http://answers.yahoo.com/dir/?link=list&sid=396546091

Re: [SQL] Droping indexes

2007-01-16 Thread Alvaro Herrera
Mario Behring wrote:
> Hi Tomas,
> 
> Thank you.
> 
> Please help me here.I am not a database guy...how do I use this 
> CLUSTER command and what does it do? Please keep in mind that I do not have 
> disk space left.

If the disk is full you cannot use CLUSTER anyway.  Suggestion: make a
note of the indexes that exist.  Drop them.  Do a VACUUM FULL of the
table.  Create the indexes again.

After that's done:

1. read the CLUSTER documentation, as it may help you in the future

2. consider restructuring the table so that redundant information is
kept only on one place (for example, the eventackuser could probably be
put on a separate table and on this one store just an integer ID).  This
will make the table and the index on that column a lot smaller.

3. add more disks to your installation

4. research a more effective VACUUM policy

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate


Re: [SQL] Droping indexes

2007-01-16 Thread Mario Behring
Hi Alvaro,

Thank you for your advise..I was thinking about doing exactly that, 
I wasn't sure on how to do it though, meaning, considering the info below, how 
should I use the CREATE INDEX command to create these indexes??

opennms=# \d events
Tabela "public.events"
 Colunm  |Type | Modifyers
-+-+---
 eventid | integer | not null
 eventuei| character varying(256)  | not null
 nodeid  | integer |
 eventtime   | timestamp without time zone | not null
 eventhost   | character varying(256)  |
 eventsource | character varying(128)  | not null
 ipaddr  | character varying(16)   |
 eventdpname | character varying(12)   | not null
 eventsnmphost   | character varying(256)  |
 serviceid   | integer |
 eventsnmp   | character varying(256)  |
 eventparms  | text|
 eventcreatetime | timestamp without time zone | not null
 eventdescr  | character varying(4000) |
 eventloggroup   | character varying(32)   |
 eventlogmsg | character varying(256)  |
 eventseverity   |
 integer | not null
 eventpathoutage | character varying(1024) |
 eventcorrelation| character varying(1024) |
 eventsuppressedcount| integer |
 eventoperinstruct   | character varying(1024) |
 eventautoaction | character varying(256)  |
 eventoperaction | character varying(256)  |
 eventoperactionmenutext | character varying(64)   |
 eventnotification   | character varying(128)  |
 eventtticket| character varying(128)  |
 eventtticketstate   | integer |
 eventforward| character varying(256)  |
 eventmouseovertext  | character varying(64)   |
 eventlog| character(1)| not null
 eventdisplay| character(1)| not null
 eventackuser| character varying(256)  |
 ndices:ktime| timestamp without time zone |
"pk_eventid"primary key, btree (eventid)
"events_acktime_idx" btree (eventacktime)
"events_ackuser_idx" btree (eventackuser)
"events_display_idx" btree (eventdisplay)
"events_ipaddr_idx" btree (ipaddr)
"events_log_idx" btree (eventlog)
"events_nodeid_idx" btree (nodeid)
"events_serviceid_idx" btree (serviceid)
"events_severity_idx" btree (eventseverity)
"events_time_idx" btree (eventtime)
"events_uei_idx" btree (eventuei)
Restrictions of foreing key:
"fk_nodeid6" FOREIGN KEY (nodeid) REFERENCES node(nodeid) ON DELETE CASCADE


Thank you.

Best regards,

Mario Behring


- Original Message 
From: Alvaro Herrera <[EMAIL PROTECTED]>
To: Mario Behring <[EMAIL PROTECTED]>
Cc: Tomas Vondra <[EMAIL PROTECTED]>; pgsql-sql@postgresql.org
Sent: Tuesday, January 16, 2007 1:08:55 PM
Subject: Re: [SQL] Droping indexes

Mario Behring wrote:
> Hi Tomas,
> 
> Thank you.
> 
> Please help me here.I am not a database guy...how do I use this 
> CLUSTER command and what does it do? Please keep in mind that I do not have 
> disk space left.

If the disk is full you cannot use CLUSTER anyway.  Suggestion: make a
note of the indexes that exist.  Drop them.  Do a VACUUM FULL of the
table.  Create the indexes again.

After that's done:

1. read the CLUSTER documentation, as it may help you in the future

2. consider restructuring the table so that redundant information is
kept only on one place (for example, the eventackuser could probably be
put on a separate table and on this one store just an integer ID).  This
will make the table and the index on that column a lot smaller.

3. add more disks to your installation

4. research a more effective VACUUM policy

-- 
Alvaro Herrerahttp://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support







 

Want to start your own business?
Learn how on Yahoo! Small Business.
http://smallbusiness.yahoo.com/r-index

Re: [SQL] Droping indexes

2007-01-16 Thread Erik Jones

Mario Behring wrote:

Hi Alvaro,

Thank you for your advise..I was thinking about doing 
exactly that, I wasn't sure on how to do it though, meaning, 
considering the info below, how should I use the CREATE INDEX command 
to create these indexes??

Have you read the documentation?

http://www.postgresql.org/docs/8.2/interactive/sql-createindex.html

--
erik jones <[EMAIL PROTECTED]>
software development
emma(r)


---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

  http://www.postgresql.org/docs/faq


[SQL] Removing CONTEXT message

2007-01-16 Thread Sabin Coanda
Hi all,

I know I can remove the CONTEXT messages from the file log with:
SET log_error_verbosity = terse

Is there any possibility to remove it from the client pgAdmin Query messages 
as well ?

TIA,
Sabin 


Re: [SQL] Droping indexes

2007-01-16 Thread Scott Marlowe
On Tue, 2007-01-16 at 07:51, Mario Behring wrote:
> Hi all,
> 
> Please, if I drop all indexes from a table, can I recreate them after
> performing a vacuum full at this table? I mean, I do not know details
> about the indexes, so what I am asking is if I issue a REINDEX on this
> table, will it  create the proper indexes again?

The bad news:  No.  Once you drop an index it's just gone.
More bad news:  If it's a primary key index, you probably can't drop it
either.

Very good news:  PostgreSQL stores an index definition for easy index
recreation.  Let's say your tablename is "mytable"

This query will get you all the index creation statements for mytable:

select indexdef from pg_indexes where tablename='mytable';

 CREATE UNIQUE INDEX mytable_pkey ON mytable USING btree (id)
 CREATE UNIQUE INDEX mytable_i1_key ON mytable USING btree (i1)
 CREATE INDEX mytable_i1_i2 ON mytable USING btree (i1, i2)

Note that if you're using a schema other than the public one, you might
need to add 

tablespace='tablespacename' to the where clause.

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [SQL] Removing CONTEXT message

2007-01-16 Thread Tom Lane
"Sabin Coanda" <[EMAIL PROTECTED]> writes:
> I know I can remove the CONTEXT messages from the file log with:
> SET log_error_verbosity = terse
> Is there any possibility to remove it from the client pgAdmin Query
> messages as well ?

This is the wrong place to ask; try the pgAdmin support lists.

MHO: if they don't have a way to adjust the verbosity of their error output,
they definitely should.

regards, tom lane

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate


Re: [SQL] Droping indexes

2007-01-16 Thread Frank Bax

At 10:42 AM 1/16/07, Mario Behring wrote:
Thank you for your advise..I was thinking about doing exactly 
that, I wasn't sure on how to do it though, meaning, considering the info 
below, how should I use the CREATE INDEX command to create these indexes??



This might provide a clue:

pg_dump -t events | grep ^CREATE


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

  http://archives.postgresql.org


Re: [SQL] Droping indexes

2007-01-16 Thread Frank Bax

At 11:27 AM 1/16/07, Frank Bax wrote:

At 10:42 AM 1/16/07, Mario Behring wrote:
Thank you for your advise..I was thinking about doing exactly 
that, I wasn't sure on how to do it though, meaning, considering the info 
below, how should I use the CREATE INDEX command to create these indexes??



This might provide a clue:

pg_dump -t events | grep ^CREATE



Sorry, perhaps this would be better

pg_dump -s -t events | grep ^CREATE 



---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


Re: [SQL] Removing CONTEXT message

2007-01-16 Thread Sabin Coanda
Hi Tom,

In fact, I found setting the configuration parameter 'client_min_messages', 
I get the expected results according to the documentation, and it works 
equivalent to 'log_min_messages ' that controls the messages of the log 
file.

I'd just wonder an equivalent parameter as 'log_error_verbosity', but for 
client messages, not log file. Is it something available ?

TIA,
Sabin


"Tom Lane" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> "Sabin Coanda" <[EMAIL PROTECTED]> writes:
>> I know I can remove the CONTEXT messages from the file log with:
>> SET log_error_verbosity = terse
>> Is there any possibility to remove it from the client pgAdmin Query
>> messages as well ?
>
> This is the wrong place to ask; try the pgAdmin support lists.
>
> MHO: if they don't have a way to adjust the verbosity of their error 
> output,
> they definitely should.
>
> regards, tom lane
>
> ---(end of broadcast)---
> TIP 7: You can help support the PostgreSQL project by donating at
>
>http://www.postgresql.org/about/donate
> 



---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [SQL] Droping indexes RESOLVED

2007-01-16 Thread Mario Behring
Hi all,

Thank you very much for your help. 

I've found a create.sql script among the millions of files from openNMS 
installation that has all SQL statements for creating all tables, constraints, 
indexes and such.  :-)

I've just executed a drop table at the guilty table (32GB in size...), 
recreated it along with all constraints and indexesand everything 
is fine now !!

Thank a lot for your support.

All the best,

Mario Behring






- Original Message 
From: Frank Bax <[EMAIL PROTECTED]>
To: pgsql-sql@postgresql.org
Sent: Tuesday, January 16, 2007 2:30:31 PM
Subject: Re: [SQL] Droping indexes

At 11:27 AM 1/16/07, Frank Bax wrote:
>At 10:42 AM 1/16/07, Mario Behring wrote:
>>Thank you for your advise..I was thinking about doing exactly 
>>that, I wasn't sure on how to do it though, meaning, considering the info 
>>below, how should I use the CREATE INDEX command to create these indexes??
>
>
>This might provide a clue:
>
>pg_dump -t events | grep ^CREATE


Sorry, perhaps this would be better

pg_dump -s -t events | grep ^CREATE 


---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match







 

8:00? 8:25? 8:40? Find a flick in no time 
with the Yahoo! Search movie showtime shortcut.
http://tools.search.yahoo.com/shortcuts/#news

Re: [SQL] Removing CONTEXT message

2007-01-16 Thread Tom Lane
"Sabin Coanda" <[EMAIL PROTECTED]> writes:
> I'd just wonder an equivalent parameter as 'log_error_verbosity', but for 
> client messages, not log file. Is it something available ?

No, because it's the client-side code's responsibility to decide how
much to display.  In psql there's "\set VERBOSITY", in pgAdmin I dunno
but you're asking the wrong person...

regards, tom lane

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

   http://archives.postgresql.org