Local partitioned Global Index Index conversion online.

Hi all
I use the Release of oracle 10.2.0.4.0 version. As a solution to solve a performance problem, I intend to convert one of the partitioned local index in overall index. Here is the script that I made, but it will take a time out as because other applications may use the same index and will suffer from performance during the transition problem. My question is if I can reach the same onlline, only because the prod database is too busy down time? Please suggest.

Script:

drop index INDX_c1c2;

create the IDX_c1c2 index on tab1 (c1, c2);

930254 wrote:
Hi all
I use the Release of oracle 10.2.0.4.0 version. As a solution to solve a performance problem, I intend to convert one of the partitioned local index in overall index. Here is the script that I made, but it will take a time out as because other applications may use the same index and will suffer from performance during the transition problem. My question is if I can reach the same onlline, only because the prod database is too busy down time? Please suggest.

Script:

drop index INDX_c1c2;

create the IDX_c1c2 index on tab1 (c1, c2);

Your application will run without index during the time it takes to create. An alternative approach which avoids this would be:

create index INDX_c1c2null on tab1(c1,c2,null);
drop index INDX_c1c2;

--
John Watson
Oracle Certified Master s/n
http://skillbuilders.com

Published by: JohnWatson on February 17, 2013 11:35
Typo - forgot to change the name of the index

Tags: Database

Similar Questions

  • Check the local or global index

    Hi all
    I wanted to know how we confirm/check if an index is local or global on a system of oracle 10 g 2

    Thank you
    Rossy.Rocs

    Lacotte,

    Small correction was need here that the partitioned dba_indexes column will only be "indicates whether the index is partitioned (YES) or not (NO); While op asks how do I know if it is a local or global index. So for that he must check the below command:

    SELECT INDEX_NAME, THE LOCALITY OF USER_PART_INDEXES;

    Column of the locality of user_part_indexes ' indicates if the partitioned index is local (LOCAL) or global (GLOBAL).
    http://download.Oracle.com/docs/CD/B19306_01/server.102/b14237/statviews_2015.htm#REFRN20156

    Concerning
    Girish Sharma

  • Local and Global Index confusion...

    Hi all

    Oracle Database 10 g Enterprise Edition Release 10.2.0.3.0 - 64 bit

    I have a partitioned table, when developing the application, they have committed an index ON this table. Previously, whenever we use to run 'Alter Table add partition..' global index becomes unusable and I used to rebuild the same. But in recent months, each time we add partition (Alter Table... ADD Partition..) on this table, index will get unusable to stat instead it shows that indexes THE data dictionaries (Lacality = Local in USER_PART_INDEXES). Partitioned indexes are also automatically created with each table partition creation.

    But the query below shows the output indexes are GLOBAL.

    Select double dbms_metadata.get_ddl('INDEX','ABCD','USER_A');

    Can someone me help on what actually happened here.

    But the example above has the keyword LOCAL?

    CREATING INDEX 'SEB '. "" CDRV_I1 ""SEBS ". "" CDRV ' ('CDRV_CURNT_FL', 'IND_LAST_VERSN', 'GMT_SEIZ_DT_TIME', 'CLECT_ZONE', 'CALL_ID',

    "SWTCH_ADMIN_ABBR")

    PCTFREE, INITRANS 10 2 MAXTRANS 255 LOGGING

    STORAGE (INITIAL 10485760 NEXT 10485760 MINEXTENTS 2 MAXEXTENTS 2147483645)

    PCTINCREASE 0 DEFAULT USER_TABLES)

    "SEBS_CDRV_TAB" of LOCAL TABLESPACE

    (PARTITION "CDRV_HISTORIC"

    PCTFREE, INITRANS 10 2 MAXTRANS 255

    STORAGE (INITIAL 10485760 NEXT 10485760 MINEXTENTS 2 MAXEXTENTS 2147483645)

    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 DEFAULT USER_TABLES)

    TABLESPACE "SEBS_CDRV_TAB."

    If it looks like a duck and quacks like a duck, it is very probably a duck (or the local index)

    See you soon

    Richard Foote

    http://richardfoote.WordPress.com/

  • Partitioned global index on partitioned table range, but the index partition does not work

    Hello:

    I was creating an index partitioned on table partitioned and partitioned index does not work.

    create table table_range)

    CUST_FIRST_NAME VARCHAR2 (20).

    CUST_GENDER CHAR (1),

    CUST_CITY VARCHAR2 (30),

    COUNTRY_ISO_CODE CHAR (2),

    COUNTRY_NAME VARCHAR2 (40),

    COUNTRY_SUBREGION VARCHAR2 (30),

    PROD_ID NUMBER NOT NULL,

    CUST_ID NUMBER NOT NULL,

    TIME_ID DATE NOT NULL,

    CHANNEL_ID NUMBER NOT NULL,

    PROMO_ID NUMBER OF NON-NULL,

    QUANTITY_SOLD NUMBER (10.2) NOT NULL,

    AMOUNT_SOLD NUMBER (10.2) NOT NULL

    )

    partition by (range (time_id)

    lower partition p1 values (u01 tablespace to_date('2001/01/01','YYYY/MM/DD')),

    lower partition (to_date('2002/01/01','YYYY/MM/DD')) tablespace u02 p2 values

    );

    create index ind_table_range on table2 (prod_id)

    () global partition range (prod_id)

    values less than (100) partition p1,

    lower partition p2 values (maxvalue)

    );

    SQL > select TABLE_NAME, SUBPARTITION_COUNT, HIGH_VALUE, nom_partition NUM_ROWS of user_tab_partitions;

    TABLE_NAME NOM_PARTITION SUBPARTITION_COUNT HIGH_VALUE NUM_ROWS

    ----------- ---------------- ------------------ -------------------------------------------------------------------------------- ----------

    TABLE_RANGE P2 0 TO_DATE (' 2002-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIA 259418)

    TABLE_RANGE P1 0 TO_DATE (' 2001-01-01 00:00:00 ',' SYYYY-MM-DD HH24:MI:SS ',' NLS_CALENDAR = GREGORIA 659425)

    SQL > select INDEX_NAME, NUM_ROWS nom_partition, HIGH_VALUE user_ind_partitions;

    INDEX_NAME NOM_PARTITION HIGH_VALUE NUM_ROWS

    ------------------------------ ------------------------------ -------------------------- ----------

    P1 IND_TABLE_RANGE 100 479520

    IND_TABLE_RANGE P2 MAXVALUE 439323

    SQL > EXECUTE DBMS_STATS. GATHER_TABLE_STATS (USER, 'TABLE_RANGE');

    SQL > EXECUTE DBMS_STATS. GATHER_TABLE_STATS (USER, 'TABLE_RANGE', GRANULARITY = > 'PARTITION');

    SQL > EXECUTE DBMS_STATS. GATHER_INDEX_STATS (USER, 'IND_TABLE_RANGE');

    SQL > EXECUTE DBMS_STATS. GATHER_INDEX_STATS (USER, 'IND_TABLE_RANGE', GRANULARITY = > 'PARTITION');

    SQL > set autotrace traceonly

    SQL > alter shared_pool RAS system;

    SQL > changes the system built-in buffer_cache;

    SQL > select * from table_range

    where prod_id = 127;

    ---------------------------------------------------------------------------------------------------

    | ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time | Pstart. Pstop |

    ---------------------------------------------------------------------------------------------------

    |   0 | SELECT STATEMENT |             | 16469 |  1334K |  3579 (1) | 00:00:43 |       |       |

    |   1.  RANGE OF PARTITION ALL THE |             | 16469 |  1334K |  3579 (1) | 00:00:43 |     1.     2.

    |*  2 |   TABLE ACCESS FULL | TABLE_RANGE | 16469 |  1334K |  3579 (1) | 00:00:43 |     1.     2.

    ---------------------------------------------------------------------------------------------------

    Information of predicates (identified by the operation identity card):

    ---------------------------------------------------

    2 - filter ("PROD_ID" = 127)

    Statistics

    ----------------------------------------------------------

    320 recursive calls

    2 db block Gets

    13352 consistent gets

    11820 physical reads

    0 redo size

    855198 bytes sent via SQL * Net to client

    12135 bytes received via SQL * Net from client

    1067 SQL * Net back and forth to and from the client

    61 sorts (memory)

    0 sorts (disk)

    15984 rows processed

    Once the sentence you say ' does not ' and then you go to paste plans that seem to show that it "works".

    What gives?

    In fact, if you look at the plans - think Oracle you have 16 k rows in the table and he'll be back k 12 rows for your select statement. In this case, Oracle is picking up the right plan - full scan 16 ranks of k is a lot less work to digitize the index lines k 12 followed by the research of rank k 12 rowid.

  • partation local and global index

    Hello

    I want partation tables in my database.
    Can someone tell me what exactly the difference between the local index & glabal.
    is there any link which can give me more informetion about the same.

    Thank you

    Local index is the index that is created on the partition key column name.

    Hi Anand

    Just to be clear, that a local index must not necessarily be created on partitioned key column, it is simply automatically partitioned in the same way as the underscore.

    If it contains effectively partitioned key columns is completely optional.

    See you soon

    Richard Foote
    http://richardfoote.WordPress.com/

  • Local/Global index for OLTP

    In our application (OLTP), we have a rule on

    * "" on all the partitioned tables, we need to have just partitioned LOCAL index "... *"
    I think that this rule is valid, because when we had GLOBAL index partitioned on the table when concurrent transactions
    was going on, we got below error:
    ORA - 00054:resource busy and...
    We get this error when rebuild us all indexes not valid...

    When we changed all the GLOBAL partitioned index at the LOCAL level... we get this error...

    We use MEV for cloud computing (i.e. we have several tenants and a partition for each tenant)


    My doubt is, is the rule as mentioned above may be still valid, because it is at odds with what is mentioned in the Oracle
    Documentation (the concepts guide)...
    http://docs.Oracle.com/CD/B19306_01/server.102/b14220/partconc.htm#i461446

    '' In general, you should use an index for OLTP applications and local storage of data or applications of DSS ''

    We use oracle 10 g 2...

    In our case, research www.lesormes.com will not create several partitions, only one partition (we have a partition for each tenant).

    Local is even better for you.

    Thanks for suggesting to rebuild online (for global)... I'll try with that... .but he would have any problem of performance relative to the index LOCAL...

    I don't think abnd so there shouldn't be any performance impact, rather it improves performance in locaking not all the table exclusively for the index creaiton.

    NY suggestion/idea why Oracle recommends partitioned Global index for OLTP?

    Because normally we have much aprtition of drop/merger/split partition of things in OLTP type (these operations are important in DSS normally loading data).

    any suggestion/idea why Oracle recommends partitioned Global index for OLTP?

    Because they are the fastest to access a record of a table and OLTP, response time is what counts. If you compare your reports OLTP or transactions, to spawn multiple partitions (a small percentage could access only a single partition and rules are made for the majority of cases, not for the small number of cases) and global index are better in this scenario.
    at MAS, you always have a huge data and as partition operation may stop your work until the index is rebuilt (which can take several hours for the huge data) where oracle is recommended to have a local indexing policy.

    Salman

  • conversion index global index local

    Hello guys, someone tell me how to convert a global index of a local index.
    The only method I know is to
    1 remove the global index
    2. create the index even with the local keyword.

    I was wondering is there any alter index statement which allows you to change the overall index to a local index?

    Thank you

    969224 wrote:
    Hello guys, someone tell me how to convert a global index of a local index.
    The only method I know is to
    1 remove the global index
    2. create the index even with the local keyword.

    I was wondering is there any alter index statement which allows you to change the overall index to a local index?

    Thank you

    There is no such statement

  • Select Insert on the same partition: RELATIONAL() - REMOVE a GLOBAL INDEX

    Hi all

    I found on v$ sqlarea suite statament:

    insert / * + / RELATIONAL PARALLEL ("TABLENAME") ("TABLENAME", 1) ADD NESTED_TABLE_SET_SETID NO_REF_CASCADE * /

    in "SCHEMA." "" TABLENAME ' partition ('DAY20151015')

    (

    Select / * + RELATIONAL("TABLENAME") PARALLEL("TABLENAME", 1) * /.

    *

    a 'schema '. " TABLENAME' partition ("DAY20151015") ".

    )

    Remove the global index

    This is a query that reads and writes the same data on the same partition!

    I think that it is generated by Oracle, but I don't undestand what he does.

    Can you give me some explanation or assistance on this query?

    Thank you very much

    This is a query that reads and writes the same data on the same partition!

    Well not - enough is NOT that.

    The RELATIONAL indicator causes unnest Oracle object data and insert the data from the attribute itself rather than the object.

    The indicators used are usable only by Oracle-c ' is why they are undocumented. You can find songs on the web, but practically everything you find is "best estimate".

    Oracle SQL tips - other indicators [HelloDBA.COM]

  • Local partitioned indexes

    Hi all

    I created 2 local partitioned index. The indexes are indexes of function. the table size is 2.3 T.
    I created the first clue that it took 14 hours to create, and even to analyze and it works fine now. Then, I created second index. But now it does not.
    What should I do?

    version 11.1.0.6
    RAC, ASM

    Thanks in advance

    Published by: disaster on April 10, 2011 21:43

    Published by: disaster on April 10, 2011 21:51

    Dear Sir

    ----------------------------------------------------------------------------------------------------------
    | Id  | Operation              | Name         | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    ----------------------------------------------------------------------------------------------------------
    |   1 |  PARTITION RANGE SINGLE|              |      1 |      1 |     82 |00:03:37.92 |     534K|    534K|
    |*  2 |   TABLE ACCESS FULL    | TBL          |      1 |      1 |     82 |00:03:37.92 |     534K|    534K|
    ----------------------------------------------------------------------------------------------------------
    

    It is the plan of the real explanation followed by the SQL engine to run your query

    The Oracle optimizer is the estimate (based on the statistics that you have collected about index and table) that your query will return only 1 rank (E-lines = 1) while in reality (when the query has been executed) it's return of 82 lines (A-Rows = 82) within 3 minutes and 37 seconds (A-Time = 00:03:37.92)

    It is clear that your index function that is not used.

    You should be aware that when you create a function based index, oracle will create a virtual column that is hidden behind the scene.

    Try to gather statistics on this column using dbms_stats.

    Please, try first to TEST

    BEGIN
       DBMS_STATS.gather_table_stats
                     (ownname             => user,
                      tabname             => 'TBL',
                      CASCADE             => TRUE,
                      method_opt         => 'FOR ALL HIDDEN COLUMNS SIZE 1'
                             );
    END;
    /
    

    and re - run your query and post once again the new plan explain him like you did before

    Best regards

    Mohamed Houri

  • Global index unpartitioned reconstruction shot

    Hi all.

    The rebuild operation global index unpartitioned is hang. Everything down and rebuild this index works correctly (nearly 15-20 secconds).

    Format of the operation:

    ALTER index index-name regeneration;

    Also try

    ALTER index index-name reconstruction nologging;

    Also try

    ALTER index index-name parallel reconstruction n NOLOGGING;

    Trace session has failed the cause of blocking.

    Session block on the operation "sequential reading.

    No other sessions are in time to rebuild indexes, without locks, no session blocking.

    Plan query ranks Rowsource Time (s)

    CREATE the INDEX STATEMENT cost = 13448670
    CREATE the INDEX STATEMENT cost = 13448670
    CREATE the INDEX STATEMENT cost = 13448670
    CREATE the INDEX STATEMENT cost = 13448670
    UNIQUE CONSTRUCTION INDEX NO AGG_EXT_ARPU_MOU_IDX8
    UNIQUE CONSTRUCTION INDEX NO AGG_EXT_ARPU_MOU_IDX8
    UNIQUE CONSTRUCTION INDEX NO AGG_EXT_ARPU_MOU_IDX8
    UNIQUE CONSTRUCTION INDEX NO AGG_EXT_ARPU_MOU_IDX8
    LIKE CREATE INDEX13 M9
    LIKE CREATE INDEX13 M9
    LIKE CREATE INDEX13 M9
    LIKE CREATE INDEX13 M9
    INDEX FULL SCAN AGG_EXT_ARPU_MOU_IDX22
    INDEX FULL SCAN AGG_EXT_ARPU_MOU_IDX22
    INDEX FULL SCAN AGG_EXT_ARPU_MOU_IDX22
    INDEX FULL SCAN AGG_EXT_ARPU_MOU_IDX22

    EVENT                            P1      P2           P3

    db file sequential read1210001


    Partitioned table consists of about 13 million lines.

    Can you help me find the problem or give a workaround solution.

    Kind regards

    Mikhail

    Always go read a CREATE INDEX of the Table.

    An INDEX REBUILD will be:

    (a) if the Index is in a VALID State-read of the Index online

    (b) if the Index is unusable-online read the Table

    You could make the Index UNUSABLE to force RECONSTRUCTION to read from the Table.

    I assume that you do NOT attempt a reconstruction in LINE and are ready to have the table locked for the duration of the reconstruction.

    But WHY YOU REBUILD the INDEX?  What is the reason?   Do you have proof that reconstruction will benefit?

    Hemant K Collette

  • ALTER Index Rebuild online

    My database is out 10 gr 2. Sometimes, I pass command ALTER INDEX < index name > REBUILD online on the indexes that are 500 MB in size. It takes about ten minutes to run the command. The database alert log shows no activity for the first six minutes, and DML is allowed on the associated table. At about minute seven journal alerts shows the first of a series of five online redo logs switches. They are each 100 MB.

    During the time that online redo logs, DML execution sessions cannot fill. When the new version of the index was created again online records switching station, the original copy of the index disappears, the ALTER INDEX command ends, and blocking for DML ceases.

    I read that the DML statements are not affected by executing ALTER INDEX REBUILD online, but experience shows that the blocking of the above sessions. Can someone explain to me what is happening in the different stages of the index rebuild? Is there something I can do to eliminate the blocking of the DML statements during the period when redo online record switch?

    Thank you
    Bill

    Bill,

    A useful reference for you:
    http://jonathanlewis.WordPress.com/2009/06/05/online-rebuild/

    Another very useful reference - of many articles:
    http://richardfoote.WordPress.com/category/index-rebuild/

    For what reason you rebuild the index?

    Charles Hooper
    Co-author of "Expert Oracle practices: Oracle Database Administration of the Oak Table.
    http://hoopercharles.WordPress.com/
    IT Manager/Oracle DBA
    K & M-making Machine, Inc.

  • Concepts behind them were leaving local and global


    Hello

    I'm not quite sure you understand the difference between local and global scores.

    Can someone explain to me - in easy words - what is the difference between local and global scores?

    Why should I use one rather than another.

    Thank you and best regards.

    I create a table and partition on SALE_DATE.

    I create an Index on it and set it as 'LOCAL '.  It becomes Equi-partitioned as a partitioned local Index.  Each Table of Partition is a Partition of the corresponding Index.

    I create another index and partition on CUSTOMER_ID.  It is partitioned on a different key of the table.  This is a partitioned Index.

    I create another index on PRODUCT_ID without no partitioning.  It is an overall index.

    Hemant K Collette

  • I created a Web site and it is actually connected live. My login is working locally, but it does not work online. Could you please help me?

    I created a Web site and it is actually connected live. My login is working locally, but it does not work online. Could you please help me?

    Hi Hervé Joseph,

    Your question is more complex than what is generally answered in the Microsoft Answers forums. Appropriate in the MSDN Internet Explorer development Forums.

    Please post your question in the MSDN Internet Explorer development Forums

  • How or there is no model code keep update/sync the local database indexedDB for MySQL database online?

    How or there is no model code keep update/sync the local database indexedDB for MySQL database online?

    Unfortunately there is no direct connector for an application of WebWorks to a back-end database. You will need to do, is to have some middleware web server (Apache, Node.js, etc.) who manages a web service that you can make an HTTP request to and GET, POST, UPDATE, DELETE data. Middleware and then transmits commands to the back-end database and returns the results to the finished device.

  • How do I know it's global index or local index?

    Hi all

    How will I know if it's overall index or local index?

    Thank you!

    Dan.

    Salvation;

    Check defination of index? Overall index below has defination

    CREATE INDEX month_ix ON sales (sales_month)
    GLOBAL PARTITION BY RANGE (sales_month)

    For more information, please visit:

    http://download.Oracle.com/docs/CD/B13789_01/server.101/b10739/partiti.htm

    Respect of
    HELIOS

Maybe you are looking for

  • iPhone is disabled connect to itunes

    I have an iPhone 5, and for some reason, my friends find it enjoying to lock my phone. Anyway, this time they locked so long that I have to connect it to iTunes to make it work. On the phone, he said: iPhone is disabled, connect to iTunes. But then,

  • Firefox poster gmail in huge police but web sites show regular fonts, how to restore Firefox gmail to normal size display?

    When I opened gmail in Firefox it displays mail in huge police which means that I don't see any part of the screen. When I opened in Internet Explorer or AOL, it is fine and I can see the screen who9le. How can I find Firefox display to normal size?

  • NB200-h-13 - no response from the DNS server and gateway

    Hello I have netbook NB200-h-13 with XP SP3. Its impossible to connect to wireless internet and the error messages areHE DIDN'T THERE WAS NO RESPONSE FROM THE DNS SERVERHE DIDN'T THERE WAS NO RESPONSE FROM THE DEFAULT GATEWAY The connection with the

  • New drivers of graphics card for Satellite P200

    Because Toshiba is not to update the graphic card drivers, I was wondering if anyone has tried using DH mobility modder found in [http://www.driverheaven.net/] I have the Satellite P200 x 16 with an ATI Mobility Radeon HD 2600 and thank you

  • Security Center alerts

    I can't change the way Security Center alerts me. The options are not grayed out, but if I select a different option it does nothing, it's just sitting there, and I have to cancel out of it