Which index rebuild?

Hi,
i have question about index rebuild
how can findout which index rebulid?

Generally speaking, none of your indexes will need rebuilding, so forget all about them and let them do their work without fiddling with them.
Right: there will always be a few exceptions to such general rules. There are no easy rules to follow, though, despite what some so-called experts will tell you.
Classically, you are supposed to do analyze index blah validate structure and then query the view INDEX_STATS. If DEL_LF_ROWS divided by LF_ROWS is greater than about 0.25 (that is, 25% of the index is marked as deletable but hasn't been lately), and if that ratio doesn't improve by itself over the course of the next few days, then the index might be considered a candidate for a rebuild.
Rather less classically, but rather more practicably, if you have metrics for how queries are supposed to perform and you regularly track against those metrics, then when the metric indicates a slow-down, you might at least investigate whether the index has blown out and could do with a bit of re-compaction.
You might also reasonably rebuild your index if moving it into archive partitions or soon-to-be read-only tablespace, for then you will want the index to be as compact as possible.
You might also very reasonably drop indexes before a bulk load and therefore equally reasonably re-create them after the load.
Similarly, if you discover you got the order of columns wrong (because your queries always want to select things by column S and D, but your index is built on columns D, G and S), then you will be looking to drop and re-create the index from scratch.
But most indexes really don't need routine maintenance.

Similar Messages

  • How CSSCAN determines which indexes need to be rebuild ?

    Hi everybody,
    i'm currently migrating 3 Oracle databases that contain CP1252 characters unproperly stored in WE8ISO8859P1 instances.
    The key steps of the migration are :
    1. ALTERing CHARACTERSET to WE8MSWIN1252
    2. changing CHARACTER SEMANTIC LENGTH for CHAR and VARCHAR2 columns
    3. truncating data stored in VARCHAR2(4000) columns
    2. Full export
    3. Full import in a ALL32UTF8 instance
    To do all of this (and especially the step 3), i use the CSSCAN utility (very practical !!!).
    And i have a question about CSSCAN: how CSSCAN determines which indexes need to be rebuild. What is the logic ?
    Looking at the CSSCAN report, i have a lot of cells/columns that are affected by the characterset migration, and i have just a few index to rebuild.
    Why would i like to understand the logic ? Because i would like to rebuild ONLY indexes that REALLY need to be rebuilt and i am not sure that all the indexes specified by CSSCAN really need to be rebuilt.
    Thanks for any information about that.
    (and sorry for my english)
    NB: i have managed "function-based indexes" specifically: i drop them before the export, and i recreate them after the import. So my question mostly target the "regular indexes"

    1. All indexes whose key contains at least one character column with convertible or exceptional data, excluding indexes with names equal to some constraint name for the same owner.
    plus
    2. All functional indexes on tables that have columns needing conversion, excluding indexes with names equal to some constraint name for the same owner.
    The condition regarding constraints does not seem to be very fortunate but it comes from times when the appropriate flag in index metadata was not yet available.
    But note that in your migration scenario, you do not actually have to care much about indexes. Step 1 & 2 do not need any modifications to the user data and hence to index contents. Step 3, if done through UPDATE, will modify affected indexes automatically. Step 4 does not affect the database. Step 5 will recreate all existing indexes anyway.
    -- Sergiusz

  • Index rebuild

    Hi Team,
    Please tell me any difference b/w alter index <index> rebuild or alter index <index> rebuild move.
    Is there any difference that more space will be released if I move index to diffrenet tablespace and move move back to orginal tablespace.
    I know that if we use move option we can move index to different tablespace,
    Regards,
    jit

    Even if you would do lots of dml's, that's not certainly means that you need the rebuilding of the index. If your assertion is based on this that there would be some "holes" within the leaf blocks which wont be reused and would require a rebuild, it's wrong then since Oracle would take care of these things on its own. So again, what criteria, other than an OLTP db you used to conclude that you need rebuilding of indexes?
    But I just wanted to know If I go for alter index rebuild or alter index rebuild move and move back the indexes, which option will be best for me mean by which option I can reclaim more space.Well, I am sorry to say but I think you really don't know very well both the commands. The commands don't differ in the space reclaim given by them but in the way they do the rebuild. Please read the documentation to know what both commands do and how? BTW, from where you picked the command alter index rebuild move since I am not sure that such command exists?
    Aman....

  • In EM 10g, i didn''t see alert like index rebuild(same was in 9i)

    in EM 10g, i didn''t see alert like index rebuild(same was in 9i)
    Do you know, which alert was being obsoleted in EM 10g grid

    In 10g, how to create an alert, which send mail who identify indexes which may benefit from rebuild

  • Index rebuild in oracle version 8i

    Hi All
    Is there any other way we know which indexes we can rebuild in a database which is using RBO in oracle version 8
    we dont want to analyze those indexes
    Thanks

    Why it is a condition that you don't want to go for analyze of the indexes?The answer to the question is almost "never".It really needs to be quantified that the rebuild will be of some benefit.On what benchmark you want to go for rebuild ofthe index?
    You may like to read this blog about the same topic and many more on indexes,
    http://richardfoote.wordpress.com
    Aman....

  • On Index Rebuild in 10g

    My partitioned table has 150 Million records with average row length of 444. I need to add 8 million more records from another non partitioned table, which will fit into 2 partitions of earlier table.
    I have set database to no force logging, disabled all foreign keys and using APPEND hint to add the rows. I suppose this won't generate redo logs for table.
    Now to reduce redo logs due to indexes, I am planning to set them unusable and then skip the unusable indexes (any unique index will be in used state as Oracle needs to enforce integrity). I can do this for partitioned indexes and rebuild required partitions alone.
    But I have around 12 global single column(with maxlength of 25 bytes) indexes . so my question is, if I rebuild the index offline (as online rebuild scans the full table- Doc ID: 272762.1), will it scans the full table or the existing index, which is in unusable state?
    Or is there any other approach? I suppose I can try using partition exchange option but I still need to deal with those indexes.

    Rebuilding unusable Index scans the table rather than the original index. Also we cannot build it online.
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1669403535933#11145054166877

  • Do index rebuild in bussiness hours creates any problem?

    hi friends
    two node rac
    version 10.2.0.4
    windows-o/s
    do index rebuild in bussiness hours creates any problem.i had still half an hour time for business hours.
    out of 10 indexes still 2 indexes are left.please let me know your suggestions thanks.
    thanks in advance
    cheers :-)

    Respond to what, exactly?
    Oracle indexes do not need to be rebuilt as a general rule. There are some exceedingly rare cases where an occasional index may need to be rebuilt. But to have 10 indexes in a database that all need to be rebuilt would be exceptional. And your description doesn't seem to indicate any logical reason that any of your indexes need to be rebuilt. That leads me to strongly suspect that you are pointlessly rebuilding the indexes in the first place.
    If you are going to pointlessly rebuild indexes (which I don't recommend), you should do it during system downtime windows when no one else is using the system. It would be better not to do them in the first place, but if you're going to waste cycles, at least waste nonproductive cycles.
    Justin

  • Table lock while index rebuild

    Dear all,
    Can anyone kindly tell if the rebuild index operation locks the table on which rebuild index is performed ? (meaning that no inserts or updates are possible on that table during that time)
    I am using Oracle 10.1.0.4
    Thanks in advance
    L

    Dear all,
    Can anyone kindly tell if the rebuild index operation
    locks the table on which rebuild index is performed ?
    (meaning that no inserts or updates are possible on
    that table during that time)
    I am using Oracle 10.1.0.4
    Thanks in advance
    LThe online index rebuild allow DML statements on the tables during the index creation. When you use the ONLINE option to create or alter an index, the current index is left intact while a new copy of the index is created. This allows DML statements to access the old index.
    Message was edited by:
    oraburn

  • Gathering schema Statistics and Index rebuilding

    I want to know after how much time we must gather the schema Statistics and Index rebuilding.
    In our system approximately 7 logfile generates in one day
    Please suggest me

    Index rebuilding sounds so much Oracle 7! Indexes today generally take care of themselves quite well, throughout inserts, deletes and updates. It rebalances itself automatically when necessary, without requiring any rebuild. As for the stats, run it for sure after large data movements (i.e. deletes and inserts). Besides that, implement table monitoring for your tables, and run once in a while dbms_stats with the options parameter as GATHER STALE. That way, Oracle will automatically know which objects need their stats refreshed.
    Daniel

  • Goldengate Extracts reads slow during Table Data Archiving and Index Rebuilding Operations.

    We have configured OGG on a  near-DR server. The extracts are configured to work in ALO Mode.
    During the day, extracts work as expected and are in sync. But during any dialy maintenance task, the extracts starts lagging, and read the same archives very slow.
    This usually happens during Table Data Archiving (DELETE from prod tables, INSERT into history tables) and during Index Rebuilding on those tables.
    Points to be noted:
    1) The Tables on which Archiving is done and whose Indexes are rebuilt are not captured by GoldenGate Extract.
    2) The extracts are configured to capture DML opeartions. Only INSERT and UPDATE operations are captured, DELETES are ignored by the extracts. Also DDL extraction is not configured.
    3) There is no connection to PROD or DR Database
    4) System functions normally all the time, but just during table data archiving and index rebuild it starts lagging.
    Q 1. As mentioned above, even though the tables are not a part of capture, the extracts lags ? What are the possible reasons for the lag ?
    Q 2. I understand that Index Rebuild is a DDL operation, then too it induces a lag into the system. how ?
    Q 3. We have been trying to find a way to overcome the lag, which ideally shouldn't have arised. Is there any extract parameter or some work around for this situation ?

    Hi Nick.W,
    The amount of redo logs generated is huge. Approximately 200-250 GB in 45-60 minutes.
    I agree that the extract has to parse the extra object-id's. During the day, there is a redo switch every 2-3 minutes. The source is a 3-Node RAC. So approximately, 80-90 archives generated in an hour.
    The reason to mention this was, that while reading these archives also, the extract would be parsing extra Object ID's, as we are capturing data only for 3 tables. The effect of parsing extract object id's should have been seen during the day also. The reason being archive size is same, amount of data is same, the number of records to be scanned is same.
    The extract slows down and read at half the speed. If normally it would take 45-50 secs to read an archive log of normal day functioning, then it would take approx 90-100 secs to read the archives of the mentioned activities.
    Regarding the 3rd point,
    a. The extract is a classic extract, the archived logs are on local file system. No ASM, NO SAN/NAS.
    b. We have added  "TRANLOGOPTIONS BUFSIZE" parameter in our extract. We'll update as soon as we see any kind of improvements.

  • Log space involved in Index Rebuilding

    Hello everyone..
    I read in one site that, an index rebuild requires space greater than or equal to the table on which it is defined and as a . Is that true?
    Already log grows when the index was first created right? Why does does it grows again when the index is rebuilt? 
    -- Thanks and Regards Srikar Reddy Gondesi, Trainee SQL Server Database Administrator Miracle Software systems, Inc.

    Hi,
    I will start fro the second point: A Log File is managed using a virtual blocks named VLF (Virtual Log Files).  A VLF is a basic unit whci can not get bigger or smaller after it is created. Increasing the log file or decreasing
    it, is done by adding or removing VLFs. You can not remove a VLS until all it content has been truncated.
    Each action is written in the log file according to the database backup mode (simple/bulk/full) and the action itself as mentioned in post above (check Andrew Bainbridge post above). therefor
    if you do an action that need to write the log file it will not use the older place and you need to use new place (place on VLF which is in unused status or build new VLF).  You can get more information on managing the Log File in this great presentation:
    http://cdn.prod.brentozar.com/wp-content/uploads/2012/09/How-SQL-Server-Stuff-Works-Log-Files.pdf
    or an Hebrw short blog: http://ariely.info/Blog/tabid/83/EntryId/130/Transaction-Log-File-Structure.aspx
    About the first point, i am not sure i understood your meaning, but if you asking if index get more place on disk then original table then the answer is basically no (but an index add to the original disk place and might use the same
    size or so). We can decide what information (column) is kept in the index Principle
    To clarify: If the question is related just to "what/when is written in the log file" then the answer of Andrew covers it. If the question "What/when causes
    the file to grow" then you need to read more on the VLF as mentioned here (written to log file do not necessarily grow the file size, in a well manage system theoretically the file should never grow/decrease).
    [Personal Site] [Blog] [Facebook]

  • Alter index rebuild

    Hello, I want to rebuild an index :
    SQL> alter index APPLSYS.WF_LOCAL_ROLES_N1 REBUILD ;
    alter index APPLSYS.WF_LOCAL_ROLES_N1 REBUILD
    ERROR at line 1:
    ORA-14086: a partitioned index may not be rebuilt as a whole
    What is wrong with my sql instruction ? Should I give partition name may be ? Where can I find partition name for that index ? Many thanks before.

    [linuxas oracle test10]$ oerr ora 14086
    14086, 00000, "a partitioned index may not be rebuilt as a whole"
    // *Cause:  User attempted to rebuild a partitioned index using
    //          ALTER INDEX REBUILD statement, which is illegal
    // *Action: Rebuild the index a partition at a time (using
    //          ALTER INDEX REBUILD PARTITION) or drop and recreate the
    //          entire index
    [linuxas oracle test10]$To see partition names for an index :
    SQL> select partition_name from USER_IND_PARTITIONS
      2* where index_name = '<YOUR INDEX>';Paul

  • Alter index rebuild question

    Hello experts,
    I have a simple question regarding rebuilding indexes...
    First, I am running 11.2.0.2 on Solaris 10.
    My reason for rebuilding is to relocate the indexes to their own tablespace, and while I recognize this is a subjective reason as far as performance is concerned, it makes administration easier.
    That being said, my question is in regards to use of "compute statistics" and also "online", and "nologging".
    Since I do want to minimize he impact to our users, and this table is one of the most used tables in the database, my syntax was going to be as follows:
    alter index <schema>.<index> rebuild online nologging tablespace <ts_idx> compute statistics;
    Questions:
    1.   does doing the rebuild online preclude queries against the table during the duration of the rebuild?
    2.   does use of nologging improve speed of rebuilding
    3.   is it advisable to include the "compute statistics".  I believe I read on Jonathan Lewis' page that statistics are gathered automatically and to include "compute statistics" was not necessary when rebuilding an index.
    And I guess one final question is whether I can include all the options in the same rebuild statement as I have shown above?
    I've tested the above in our test database, but it seems to hang when using the online option (with all the other options).
    Thanks in advance.

    Excellent resource.  Thanks for the link.  While I've read most of those discussions on either Jonathan's or Richard's web sites already, it is a good presentation and reference.
    Unfortunately, it does not answer either of the questions that I asked.  The reason I asked those questions is because the answers you gave contradict what i read in Oracle documentation (although it might be version specific).
    Also, it does seem to be slightly faster to rebuild using nologging (in my test environment).
    I've tested this with multiple indexes and the timing is slightly improved consistently.
    {quote}
    SQL> ALTER INDEX ARADMIN."T2179_C1_0944_1037" REBUILD LOGGING TABLESPACE REMEDY_IDX;
    Index altered.
    Elapsed: 00:00:10.68
    SQL> ALTER INDEX ARADMIN."T2179_C1_0944_1037" REBUILD nologging TABLESPACE REMEDY_IDX;
    Index altered.
    Elapsed: 00:00:08.50
    {quote}
    The use of online, however, seems to "hang" for some reason, even in my test database while no one else is logged into the database except me.
    Referencing Oracle's documentation, it says that rebuilding an index online does not allow queries against the base table.  This is why I asked this question, but your answer is different than Oracle's.  In this case, however, it is for Oracle 10.2, so not sure if this is still true for 11.2.
    Ref.  Oracle Text SQL Statements and Operators
    [ONLINE]
    ONLINE enables you to continue to perform updates, inserts, and deletes on a base table; it does not enable you to query the base table.
    You cannot use PARALLEL with ONLINE. ONLINE is only supported for CONTEXT indexes.
    Now, regarding the use of "compute statistics", I am pretty sure I recall reading either in Jonathan's papers, or in Richard's papers, that this is not necessary and/or is redundant.  But then why would Oracle include this as an option.  This is counter intuitive, which again is why I'm asking.  Do you know if any reference that can clear this up?

  • Alter index rebuild calculates statistics?

    Hi
    Does anyone know if ALTER INDEX REBUILD gathers statistics on the index automatically? Does it do it at a 100% by default?
    Thanks for your help!!!

    On 10g+ the alter index command defaults to compute statistics which to the best o my knowledge is a 100% sample. With lower versions you need to specify that you want statistics: alter index owner.index_name rebuild compute statistics;
    HTH -- Mark D Powell --

  • Different b/w index rebuild and index rebuild online

    hi..guys could u plz tel me difference between index rebuild and index rebuild online

    There is no difference in both the commands. Both will rebuild the index structure from the scratch.But in the first case with only Rebuild, as long as the index, its temporary segment is not prepared and merged together, index is not available for the other users for use. The Online clause makes the index available for others even while being rebuild.
    Rebuilding index online has the same concept of creating them online to some extent,
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/indexes.htm#3062
    HTH
    Aman....

Maybe you are looking for