Oracle 9i Performance Tuning Student Guide Vol1. D11299GC10 July 2001 12- Application tuning 12-11 bitmap indexes. Juan Miranda Oracle Certified Professional. -----Mensaje original----- De: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] En nombre de Niall Litchfield Enviado el: martes, 17 de febrero de 2004 13:20 Para: oracle-l@xxxxxxxxxxxxx Asunto: RE: Rebuild Indexes Hi Juan I couldn't actually find your quote in the Performance Tuning Guide for 8.1= .7, 9.2 or 10.1. Is it perhaps some other book?=20 Niall Litchfield Oracle DBA Audit Commission +44 117 975 7805=20 > -----Original Message----- > From: j.miranda@xxxxxxxxxxxx=20 > Sent: 17 February 2004 10:41 > To: j.miranda@xxxxxxxxxxxx; oracle-l@xxxxxxxxxxxxx > Subject: RE: Rebuild Indexes >=20 >=20 >=20 > Hi >=20 > May script do just original post (vidya kalyanaraman) as for. > No more.=20 >=20 > May be is not adecuate for your system.=20 > Anyway you can stop it when you want: a simple CTRL+C. >=20 > In my mail I say:=20 > "Take care in production because VALIDATE STRUCTURE do some=20 > tipe of lock." >=20 > I have a very busy database and I execute this script very=20 > care and control. > I do it once a year and this reduced to 1/3 the space ocupied=20 > by indexes. >=20 > I will no discuss if it is good or not to rebuild indexes but... > Oracle Performance Tuning Manual 12-12: > "You sould rebuild your indexes regularly. However, this can be a > time-consuming task, especially if the base table es very large." >=20 > Sorry if it caused problems in your system but ask Oracle for a better > rebuild method, not me. >=20 > I forgot to add an "alter session set SORT_AREA_SIZE=3D25000000;". This= > do it faster. >=20 > Grettings. >=20 >=20 > -----Mensaje original----- > De: oracle-l-bounce@xxxxxxxxxxxxx=20 > [mailto:oracle-l-bounce@xxxxxxxxxxxxx] En > nombre de Richard Foote > Enviado el: viernes, 13 de febrero de 2004 14:59 > Para: oracle-l@xxxxxxxxxxxxx > Asunto: Re: Rebuild Indexes >=20 > When to rebuild indexes, hummm, this is all rather new and exciting ;) >=20 > Juan, I notice with interest that your script: >=20 > - performs an analyze validate structure on all indexes > - rebuilds all indexes if guilty of having more than 2 levels > - rebuilds all indexes with more than 10% deleted rows >=20 > Running such a script on our production databases at my=20 > current site would: >=20 > - cripple performance for up to approximately 14 hours=20 > (depending on > database) performing just the analyze step > - rebuild every single one of our larger, 3+ level=20 > indexes (don't want > to think about the cost of this) >=20 > for practically *no* benefit. >=20 > The 3+ criteria does "accidentally" rebuild the handful we've=20 > identified as > being candidates for an occasional rebuild but boy, what an=20 > incredible price > to pay !! >=20 > I think not ... >=20 > Richard Foote >=20 > ----- Original Message ----- > From: "Juan Miranda" <j.miranda@xxxxxxxxxxxx> > To: <oracle-l@xxxxxxxxxxxxx> > Sent: Friday, February 13, 2004 7:14 PM > Subject: RE: Rebuild Indexes >=20 >=20 >=20 > Hi >=20 > Try this. > This do not use a cursor so you can stop it when you what. > Take care in production because VALIDATE STRUCTURE do some=20 > tipe of lock. >=20 >=20 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > +++++++++++=3D > +++ > -- Juan Miranda Serm=3DE1tica 06/AGO/2002 > -- Utiliza VALIDATE STRUCTURE -> OJO en producci=3DF3n. Puede generar =3D > errores > ORA-00054. > -- OJO nolog -> NO usar con stand by >=20 >=20 > set serveroutput on size 1000000 > set pagesize 0 > set feedback off > set echo off > set trimspool on >=20 > spool c:\reb_index1.sql >=20 > DECLARE > dbname varchar2(20); > wday varchar2(11); > BEGIN > dbms_output.put_line('set echo off'); > dbms_output.put_line('set feedback off'); > dbms_output.put_line('set head off'); >=20 > dbms_output.put_line('spool c:\reb_index2.sql'); > dbms_output.put_line('prompt set feedback on'); > dbms_output.put_line('prompt set echo on'); > dbms_output.put_line('prompt spool c:\reb_index2.log'); >=20 > FOR t IN (select owner, index_name from dba_indexes where=20 > owner not =3D > in > ('SYS','SYSTEM') order by owner,index_name) LOOP >=20 > dbms_output.put_line('prompt --Analizando > '||t.owner||'.'||t.index_name); >=20 > dbms_output.put_line('Analyze index=20 > '||t.owner||'.'||t.index_name||' > validate structure;'); >=20 > dbms_output.put_line('select ' || '''' || 'Alter index '=20 > || t.owner =3D > || > '.' || t.index_name || ' rebuild online;' || ''''|| ' from=20 > index_stats =3D > where > (height > 2) or > (10<=3D3Ddecode(lf_rows_len,0,NULL,((del_lf_rows_len/lf_rows_len > )*100)));')=3D > ; >=20 > END LOOP; >=20 > dbms_output.put_line('prompt spool off'); > dbms_output.put_line('spool off'); > dbms_output.put_line('@c:\reb_index2.sql'); >=20 > END; > / > spool off >=20 > @c:\reb_index1.sql >=20 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > +++++++++++=3D > +++ >=20 >=20 >=20 >=20 > -----Mensaje original----- > De: oracle-l-bounce@xxxxxxxxxxxxx=20 > [mailto:oracle-l-bounce@xxxxxxxxxxxxx] =3D > En > nombre de vidya kalyanaraman > Enviado el: viernes, 13 de febrero de 2004 9:46 > Para: oracle-l@xxxxxxxxxxxxx > Asunto: Rebuild Indexes=3D20 >=20 > Hi > It may be a silly thing to ask, but I am stuck right now.=3D20 > I have been given a task to find out the indexes which need to be=3D20 > rebuilt. There are around 3000 Indexes. I know I can run=20 > the following =3D >=20 > command > "analyze index <Index> VALIDATE STRUCTURE " =3D20 >=20 > for a single index and then find the rows from index_state=20 > based on=3D20 > del_lf_rows_len/lf_rows_len > 20%. =3D20 > Does anyone have a script for dynamically finding out the=20 > indexes that=3D20 > are the candidates for rebuilding? How do you normally handle=3D20 > situations like this? >=20 > TIA > Vidya >=20 >=20 >=20 >=20 >=20 > ---------------------------------------------------------------- > Please see the official ORACLE-L FAQ: http://www.orafaq.com > ---------------------------------------------------------------- > To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx > put 'unsubscribe' in the subject line. > -- > Archives are at //www.freelists.org/archives/oracle-l/ > FAQ is at //www.freelists.org/help/fom-serve/cache/1.html > ----------------------------------------------------------------- >=20 > ---------------------------------------------------------------- > Please see the official ORACLE-L FAQ: http://www.orafaq.com > ---------------------------------------------------------------- > To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx > put 'unsubscribe' in the subject line. > -- > Archives are at //www.freelists.org/archives/oracle-l/ > FAQ is at //www.freelists.org/help/fom-serve/cache/1.html > ----------------------------------------------------------------- >=20 >=20 >=20 > ---------------------------------------------------------------- > Please see the official ORACLE-L FAQ: http://www.orafaq.com > ---------------------------------------------------------------- > To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx > put 'unsubscribe' in the subject line. > -- > Archives are at //www.freelists.org/archives/oracle-l/ > FAQ is at //www.freelists.org/help/fom-serve/cache/1.html > ----------------------------------------------------------------- >=20 > ---------------------------------------------------------------- > Please see the official ORACLE-L FAQ: http://www.orafaq.com > ---------------------------------------------------------------- > To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx > put 'unsubscribe' in the subject line. > -- > Archives are at //www.freelists.org/archives/oracle-l/ > FAQ is at //www.freelists.org/help/fom-serve/cache/1.html > ----------------------------------------------------------------- >=20 >=20 ********************************************************************** This email contains information intended for the addressee only. It may be confidential and may be the subject of legal and/or professional privilege. Any dissemination, distribution, copyright or use of this communication without prior permission of the sender is strictly prohibited. ********************************************************************** ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html ----------------------------------------------------------------- ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------