Split creation of the index

Hi !
I have a table with more 50 GO of documents and i will create an index for full text search.
The problem is that the creation take a long time and it is problem to create it in a production environment.
It is possible to split the creation of the index. for example 10 GO by 10 GO.
Thanks a lot for your answers.
L.A

For locally partitioned text indexes, you can rebuild each partition separately. If you have lots of memory and CPUs, then you might be able to rebuild all the partitions simultaneously. As raford suggested, it is a two step process:
1. create the index with nopopulate
2. rebuild each partition in a separate session
eg
ALTER INDEX xxx REBUILD PARTITION xxx PARAMETERS ('replace memory 200M');
Using this technique, I can rebuild a 7M doc/35GB index in about 3 hours.
The index rate for each partition is about 17 docs/sec. I don't know if this is particularly good or bad as a rate per se. I've tried adding "PARALLEL 4" to my rebuild statements and, for at least one partition, it jumped to an astonding 79 docs/sec rate. But contention lock and wait problems ensued for the other partitions, so I need to do more testing of this option.

Similar Messages

  • SPLIT PARTITION  creating the index in different Table Space

    I am splitting the table every month. After splitting the Index is also Splitting. (It is natural). But it is creating in default table Space.
    I want to split INDEX and creating into the index table space “ACTIVITY_IND_TS_1”
    CREATE TABLE PART
    PK_KEY NUMBER(15) NOT NULL,
    PK_ID NUMBER(1) NOT NULL
    TABLESPACE USERS PARTITION BY RANGE (PK_ID)
    PARTITION PK_ID_PRD1 VALUES LESS THAN (1)
    LOGGING
    TABLESPACE ACTIVITY_TAB_TS_1,
    PARTITION PK_ID_PRD2 VALUES LESS THAN (2)
    LOGGING
    TABLESPACE ACTIVITY_TAB_TS_1,
    PARTITION PK_ID_PRD3 VALUES LESS THAN (3)
    LOGGING
    TABLESPACE ACTIVITY_TAB_TS_1,
    PARTITION PK_ID_PRD4 VALUES LESS THAN (4)
    LOGGING
    TABLESPACE ACTIVITY_TAB_TS_1,
    PARTITION PK_ID_PRD_MAXVALUE VALUES LESS THAN (MAXVALUE)
    LOGGING
    TABLESPACE ACTIVITY_TAB_TS_1
    NOCACHE
    NOPARALLEL
    ENABLE ROW MOVEMENT;
    CREATE INDEX PART_IX ON PART(PK_ID)
    LOCAL (PARTITION PK_ID_PRD1 TABLESPACE ACTIVITY_IND_TS_1,
    PARTITION PK_ID_PRD2 TABLESPACE ACTIVITY_IND_TS_1,
    PARTITION PK_ID_PRD3 TABLESPACE ACTIVITY_IND_TS_1,
    PARTITION PK_ID_PRD4 TABLESPACE ACTIVITY_IND_TS_1,
    PARTITION PK_ID_PRD_MAXVALUE TABLESPACE ACTIVITY_IND_TS_1)
    PARALLEL
    NOLOGGING;
    select unique tablespace_name from user_tab_partitions; -- ACTIVITY_TAB_TS_1
    select unique tablespace_name from user_ind_partitions; -- ACTIVITY_IND_TS_1
    ALTER TABLE PART SPLIT PARTITION PK_ID_PRD_MAXVALUE
    AT (5) INTO (PARTITION PK_ID_PRD5, PARTITION PK_ID_PRD_MAXVALUE);
    select unique tablespace_name from user_tab_partitions; -- ACTIVITY_TAB_TS_1
    select unique tablespace_name from user_ind_partitions; -- ACTIVITY_TAB_TS_1 ACTIVITY_IND_TS_1
    Edited by: sk123 on May 5, 2009 1:05 PM

    Hello,
    Once you split partition you need to rebuild indexes if you want indexes to be in their own tablespaces
    ALTER TABLE PART
    SPLIT PARTITION PK_ID_PRD_MAXVALUE AT
    (6)
    INTO (PARTITION PK_ID_PRD5
           TABLESPACE ACTIVITY_TAB_TS_1
           PARTITION PK_ID_PRD_MAXVALUE);
    ALTER INDEX PART_IX
    REBUILD PARTITION PK_ID_PRD5
    TABLESPACE ACTIVITY_IND_TS_1;
    ALTER INDEX PART_IX
    REBUILD PARTITION PK_ID_PRD_MAXVALUE
    TABLESPACE ACTIVITY_IND_TS_1;Regards

  • How the index will be fired...............

    Hi All,
    I have one problem.........
    Like i created an index on two columns as follows......
    CREATE INDEX gpm_personprofiledemo_dob2_idx ON gpm_personprofiledemo
    (profile_updated_dt, birth_dt)
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    TABLESPACE gpmix
    STORAGE (
    INITIAL 104857600
    NEXT 52428800
    PCTINCREASE 0
    MINEXTENTS 2
    MAXEXTENTS 5
    When I query the table as follows the index is getting fired..
    SELECT /*+ INDEX(PPD GPM_PERSONPROFILEDEMO_DOB2_IDX) */
    PPD.PANELIST_ID, PPD.FNAME, PPD.LNAME, PPD.GENDER, PPD.BIRTH_DT, ROUND(TRUNC(SYSDATE-PPD.BIRTH_DT)/365) AGE,
    PPD.HISPANIC_LANGUAGE, PPD.PROFILE_UPDATED_DT
    FROM GPM_PERSONPROFILEDEMO PPD
    WHERE PPD.PROFILE_UPDATED_DT = TO_DATE('28-APR-2002', 'DD-MON-YYYY')
    AND PPD.BIRTH_DT = TO_DATE('15-OCT-1973', 'DD-MON-YYYY');
    Even when I tried with the following query also the index is getting fired.
    SELECT /*+ INDEX(PPD GPM_PERSONPROFILEDEMO_DOB2_IDX) */
    PPD.PANELIST_ID, PPD.FNAME, PPD.LNAME, PPD.GENDER, PPD.BIRTH_DT, ROUND(TRUNC(SYSDATE-PPD.BIRTH_DT)/365) AGE,
    PPD.HISPANIC_LANGUAGE, PPD.PROFILE_UPDATED_DT
    FROM GPM_PERSONPROFILEDEMO PPD
    WHERE PPD.PROFILE_UPDATED_DT = TO_DATE('28-APR-2002', 'DD-MON-YYYY');
    But when I use the following query, its not getting fired. Its taking "INDEX FULL SCAN"
    SELECT /*+ INDEX(PPD GPM_PERSONPROFILEDEMO_DOB2_IDX) */
    PPD.PANELIST_ID, PPD.FNAME, PPD.LNAME, PPD.GENDER, PPD.BIRTH_DT, ROUND(TRUNC(SYSDATE-PPD.BIRTH_DT)/365) AGE,
    PPD.HISPANIC_LANGUAGE, PPD.PROFILE_UPDATED_DT
    FROM GPM_PERSONPROFILEDEMO PPD
    WHERE PPD.BIRTH_DT = TO_DATE('15-OCT-1973', 'DD-MON-YYYY');
    Can you explain me why so?
    Like what am thinking is i created the index on "profile_updated_dt, birth_dt" but not on "birth_dt, profile_updated_dt".
    Is there any preference for the order of columns during the creation of the INDEX.
    Am stuck with this issue. And am unable to solve it. Can any one help me out?
    Because its very urgent.
    Thanks in advance
    Sudarshan

    But when I use the following query, its not getting fired. Its taking "INDEX FULL SCAN"I would have thought that the later part of the above statement contradicts with the earlier part of the statement.
    its not getting firedcontradicts this statement:
    Its taking "INDEX FULL SCAN"Since the birth_dt is not the leading column of your index ...
    Is it doing a INDEX FULL SCAN on the GPM_PERSONPROFILEDEMO_DOB2_IDX index?
    if you have queries that involve profile_update_dt + birth_dt and some others that involve only birth_dt, then why not have the index in birth_dt + profile_update_dt instead?

  • I am looking for a way to automate index creation using Adobe Reader Pro without having to use the screen user interface, as the indexing has to be run by a batch process.

    I am looking for a way to automate index creation using Adobe Reader Pro without having to use the screen user interface, as the indexing has to be run by a batch process.

    [discussion moved to Creating, Editing & Exporting PDFs forum.]

  • Three questions about the creation of secondary indexes in ODS design mode

    1. When we right click the Indexes folder in ODS design to select Create to create the Index folder 010, a small window pops up with a check box called "Unique", do we have to check this checkbox to create folder 010?
    2. If we would like to include 3 InfoObjects into the secondary indexes, then how many folders we need to create? Need to create 3 folders like 010, 020, and 030 and place the 3 InfoObj. into the 3 folder respectively or create only one folder 010 and place all the 3 InfoObj. into this one folder 010?
    3. In SAP documentation titled "BW Performance Tuning" about the Indices, it says "If the (uncompressed) F fact table is small, it is usually faster to drop the secondary (bitmap) indices before the load and build them up after the load"
    Someone here says secondary index is only for ODS other than for cubes, but from the above statement, F fact table is related to cubes, then how to explain it? Also the above statement is talking above the variant in process chain that when you bring in a variant to load data to cube, then the drop index and generate index variants will be automatically created, does it refer to this? And what's bitmap index?
    Thanks in advance and we will continue to give you reward points!

    Hi Kevin,
    Cube has Secondary index's. The index's that we find in the Manage of the Cube are the Secondary Index's. Please check the following link for more information.
    http://help.sap.com/saphelp_erp2004/helpdata/en/80/1a6473e07211d2acb80000e829fbfe/frameset.htm
    Also, to know about Unique indexes, use the following link
    http://help.sap.com/saphelp_erp2004/helpdata/en/9b/c743f5b40711d194f900a0c929b3c3/frameset.htm
    "The indexes displayed are the secondary indexes of the F and E fact tables for the InfoCube. The primary indexes and those defined by the user are not displayed. " (SAP help).
    This should answer your questions.
    Regards,
    Praveen.

  • Error in creation of text indexes and synching with user datastore

    Hi
    has any body encountered error in creating text indexes on 9.2.0.1 with user datastore. you can create them only with no-populate option. however once created after checking-in documents the indexes cannot be synched using ctx_ddl command manually.

    The only thing that I have seen similar to this was worked around by updating the column to itself, then sync...not sure if this is the same thing you are running into, but it may be worth a try. See the Oracle Text FAQ - take special note of step c:
    ===============================
    Creates the index without populating it.
    SQL > CREATE INDEX GLOBALINDEXEDBLOB_I
    ON ODMM_CONTENTSTORE ("GLOBALINDEXEDBLOB" ) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS (' stoplist CTXSYS.DEFAULT_STOPLIST storage IFS_DEF_STORAGE section group IFS_SECTION_GROUP wordlist IFS_DEF_WORDLIST memory 32000000 filter IFS_DEF_FILTER format column FORMAT charset column CHARACTERSET lexer IFS_GLOBAL_LEXER language column LANGUAGE nopopulate');
    b. Mark globalindexedblob column in every row as updated.
    SQL > update odmm_contentstore set globalindexedblob = globalindexedblob;
    c. Sync the index. If you skipped the previous step, then this step does not index content that existed prior to index creation in step a.
    SQL > exec ctx_ddl.sync_index('GLOBA[i]Long postings are being truncated to ~1 kB at this time.

  • Creation of context index on index-organized tables

    I encountered a problem when creating a domain index(intermediate text context index) on a index-organised table in oracle 8i.
    The description of the error is stated below:
    "ORA-29866: cannot create domain index on a column of index-organized table "
    I have configured intermediate text properly and even it worked for those tables which are not index-organised(ordinary tables).
    This problem has occured only when i made the tables as index organised.
    Please provide us a solution to this problem as early as possible.
    In case if you require any more details i shall provide them.

    creation of domain indexes (such as context) on iot's
    is not currently supported in oracle.

  • The plan doesn't use the index but the cost of INDEX FULL SCAN looks better

    Hi,
    Well, I'm sure I miss the boat... and if the question is pretty tricky, the answer is probably :"You're stupid Greg!". Well anyway, you'll probably be interested in trying to answer it as I've spent some times on it without any result ! I use Oracle XE on Windows...
    1) Below is my query and its plan. You'll find the full schema generation script at the end of this email. Look at the cost (468) of the plan and the cost of the same query when you force the use of the index (116). Why is this ?
    select count(distinct col5)
      2    from demo
      3      where col1 between 1 and 50000
      4        and col2=col1
      5        and col3=col1
      6        and col4=col1;
    Plan d'execution
    Plan hash value: 2072716547
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |     1 |   116 |   468   (2)| 00:00:06 |
    |   1 |  SORT GROUP BY     |      |     1 |   116 |            |          |
    |*  2 |   TABLE ACCESS FULL| DEMO |     1 |   116 |   468   (2)| 00:00:06 |
    Predicate Information (identified by operation id):
       2 - filter("COL2"="COL1" AND "COL3"="COL1" AND "COL4"="COL1" AND
                  "COL1"<=50000 AND "COL2"<=50000 AND "COL3"<=50000 AND "COL4"<=50000 AND
                  "COL1">=1 AND "COL2">=1 AND "COL3">=1 AND "COL4">=1)2) When I force the use of an index (with a Hint), You'll see the cost of the plan is 116 which is definitly better than the TABLE ACCESS FULL (468) :
    SQL> l
      1  select /*+ index(demo demo_idx)*/ count(distinct col5)
      2    from demo
      3      where col1 between 1 and 50000
      4        and col2=col1
      5        and col3=col1
      6*       and col4=col1
    SQL> /
    Plan d'execution
    Plan hash value: 189561699
    | Id  | Operation                    | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT             |          |     1 |   116 |   437   (2)| 00:00:06 |
    |   1 |  SORT GROUP BY               |          |     1 |   116 |            |          |
    |   2 |   TABLE ACCESS BY INDEX ROWID| DEMO     |     1 |   116 |   437   (2)| 00:00:06 |
    |*  3 |    INDEX FULL SCAN           | DEMO_IDX |     1 |       |   436   (2)| 00:00:06 |
    Predicate Information (identified by operation id):
       3 - filter("COL2"="COL1" AND "COL3"="COL1" AND "COL4"="COL1" AND
                  "COL1"<=50000 AND "COL2"<=50000 AND "COL3"<=50000 AND "COL4"<=50000 AND
                  "COL1">=1 AND "COL2">=1 AND "COL3">=1 AND "COL4">=1)3) My question is why is plan1 used while plan2 should be considered better by the optimizer regarding the cost (to make the case even more complex, plan1 is actually more efficient but this is out of the scope of my question. I know that and I know why !).
    You'll find a script to generate the structures and data below. I can send you the 10053 traces if you what to go furthermore. Take care the index is a REVERSE index (Don't know if query rewrite should be enabled in order to take advantage of this type of index but it is set to "true" (and "trusted") :
    drop table demo;
    create table demo (col1 number not null,
        col2 number,
        col3 number,
        col4 number,
        col5 varchar2(500));
    begin
      for i in 1..100000 loop
        insert into demo values (i,i,i,i,'This column is used to raise the High Water Mark and '||
                                 ' the cost of an TABLE ACCESS FULL operation');
      end loop;
    end;
    commit;
    create index demo_idx on demo(col1,col2,col3,col4) reverse;
    exec dbms_stats.gather_table_stats(USER, 'DEMO', cascade=>true, -
      method_opt=>'FOR ALL COLUMNS SIZE 254', no_invalidate=>false) Any comments are welcome ! Best Regards,
    Gregory
    Message was edited by:
    arkzoyd... I've added the "pre" tags

    I suspect this has something to do with db_file_multiblock_read_count
    After running provided creation statements by you I got following results:
    SQL> show parameter multiblock
    NAME                                 TYPE        VALUE
    db_file_multiblock_read_count        integer     16
    SQL> set autotrace on
    SQL> select count(distinct col5)
      2   from demo
      3   where col1 between 1 and 50000
      4   and col2=col1
      5   and col3=col1
      6   and col4=col1
      7  /
    COUNT(DISTINCTCOL5)
                      1
    Execution Plan
    Plan hash value: 2072716547
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |     1 |   116 |   375   (1)| 00:00:05 |
    |   1 |  SORT GROUP BY     |      |     1 |   116 |            |          |
    |*  2 |   TABLE ACCESS FULL| DEMO |     1 |   116 |   375   (1)| 00:00:05 |
    Predicate Information (identified by operation id):
       2 - filter("COL2"="COL1" AND "COL3"="COL1" AND "COL4"="COL1" AND
                  "COL1"<=50000 AND "COL2"<=50000 AND "COL3"<=50000 AND "COL4"<=5000
    0 AND
                  "COL1">=1 AND "COL2">=1 AND "COL3">=1 AND "COL4">=1)
    Statistics
            196  recursive calls
              0  db block gets
           1734  consistent gets
            850  physical reads
              0  redo size
            422  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              7  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> select /*+ index(demo demo_idx)*/ count(distinct col5)
      2   from demo
      3   where col1 between 1 and 50000
      4   and col2=col1
      5   and col3=col1
      6   and col4=col1
      7  /
    COUNT(DISTINCTCOL5)
                      1
    Execution Plan
    Plan hash value: 189561699
    | Id  | Operation                    | Name     | Rows  | Bytes | Cost (%CPU)| T
    ime     |
    |   0 | SELECT STATEMENT             |          |     1 |   116 |   431   (1)| 0
    0:00:06 |
    |   1 |  SORT GROUP BY               |          |     1 |   116 |            |
            |
    |   2 |   TABLE ACCESS BY INDEX ROWID| DEMO     |     1 |   116 |   431   (1)| 0
    0:00:06 |
    |*  3 |    INDEX FULL SCAN           | DEMO_IDX |     1 |       |   430   (1)| 0
    0:00:06 |
    Predicate Information (identified by operation id):
       3 - filter("COL2"="COL1" AND "COL3"="COL1" AND "COL4"="COL1" AND
                  "COL1"<=50000 AND "COL2"<=50000 AND "COL3"<=50000 AND "COL4"<=5000
    0 AND
                  "COL1">=1 AND "COL2">=1 AND "COL3">=1 AND "COL4">=1)
    Statistics
              1  recursive calls
              0  db block gets
          50426  consistent gets
            428  physical reads
              0  redo size
            422  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
              1  rows processedNow I modify multiblock_read_count and full scan cost is going up although anyway Oracle by default chooses full scan instead of index access.
    SQL> alter session set db_file_multiblock_read_count = 8;
    Session altered.
    SQL> select count(distinct col5)
      2   from demo
      3   where col1 between 1 and 50000
      4   and col2=col1
      5   and col3=col1
      6   and col4=col1
      7  /
    COUNT(DISTINCTCOL5)
                      1
    Execution Plan
    Plan hash value: 2072716547
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |     1 |   116 |   463   (1)| 00:00:06 |
    |   1 |  SORT GROUP BY     |      |     1 |   116 |            |          |
    |*  2 |   TABLE ACCESS FULL| DEMO |     1 |   116 |   463   (1)| 00:00:06 |
    Predicate Information (identified by operation id):
       2 - filter("COL2"="COL1" AND "COL3"="COL1" AND "COL4"="COL1" AND
                  "COL1"<=50000 AND "COL2"<=50000 AND "COL3"<=50000 AND "COL4"<=5000
    0 AND
                  "COL1">=1 AND "COL2">=1 AND "COL3">=1 AND "COL4">=1)
    Statistics
              1  recursive calls
              0  db block gets
           1697  consistent gets
            850  physical reads
              0  redo size
            422  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> select /*+ index(demo demo_idx)*/ count(distinct col5)
      2   from demo
      3   where col1 between 1 and 50000
      4   and col2=col1
      5   and col3=col1
      6   and col4=col1
      7  /
    COUNT(DISTINCTCOL5)
                      1
    Execution Plan
    Plan hash value: 189561699
    | Id  | Operation                    | Name     | Rows  | Bytes | Cost (%CPU)| T
    ime     |
    |   0 | SELECT STATEMENT             |          |     1 |   116 |   431   (1)| 0
    0:00:06 |
    |   1 |  SORT GROUP BY               |          |     1 |   116 |            |
            |
    |   2 |   TABLE ACCESS BY INDEX ROWID| DEMO     |     1 |   116 |   431   (1)| 0
    0:00:06 |
    |*  3 |    INDEX FULL SCAN           | DEMO_IDX |     1 |       |   430   (1)| 0
    0:00:06 |
    Predicate Information (identified by operation id):
       3 - filter("COL2"="COL1" AND "COL3"="COL1" AND "COL4"="COL1" AND
                  "COL1"<=50000 AND "COL2"<=50000 AND "COL3"<=50000 AND "COL4"<=5000
    0 AND
                  "COL1">=1 AND "COL2">=1 AND "COL3">=1 AND "COL4">=1)
    Statistics
              1  recursive calls
              0  db block gets
          50426  consistent gets
              0  physical reads
              0  redo size
            422  bytes sent via SQL*Net to client
            385  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              1  sorts (memory)
              0  sorts (disk)
              1  rows processedSo I don't know what is the default value of dbfmbrc in XE and not gone too deep to understand how for example system statistics may change your situation.
    Gints Plivna
    http://www.gplivna.eu
    P.S. BTW I used Oracle Database 10g Enterprise Edition Release 10.2.0.1.0.
    Message was edited by:
    gintsp
    listened to Williams suggestion :)

  • How to see how many times of  index split occured on an index?

    hi gurus
    The ASH reports shows a lot of enq: index contention wait event on an index.I suspect that it's index split that caused the waits. From wht dictionary can I see the times of index split once occured on that index?
    Thanks very much!

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/instance_tune.htm#i16341
    The name of the enqueue is included as part of the wait event name, in the form enq: enqueue_type -  related_details. In some cases, the same enqueue type can be held for different purposes, such as the following related TX types:
        *      enq: TX - allocate ITL entry
        *      enq: TX - contention
        *      enq: TX - index contention
        *      enq: TX - row lock contention
    The V$EVENT_NAME view provides a complete list of all the enq: wait events.
    You can check the following V$SESSION_WAIT parameter columns for additional information:
        *      P1 - Lock TYPE (or name) and MODE
        *      P2 - Resource identifier ID1 for the lock
        *      P3 - Resource identifier ID2 for the lockdoes following SQL return any rows for you?
    SELECT Decode(request, 0, 'Holder: ',
                           'Waiter: ')
           || sid sess,
           id1,
           id2,
           lmode,
           request,
           TYPE
    FROM   v$lock
    WHERE  ( id1, id2, TYPE ) IN (SELECT id1,
                                         id2,
                                         TYPE
                                  FROM   v$lock
                                  WHERE  request > 0)
    ORDER  BY id1,           request; 

  • How to find out the index in string.

    Hello Experts,
    I have a requirement in which i have to find out the index of the last space before the 50th position in a string.
    is there any way other than spliting the string.
    e.g. if string is - 'aaaa aaaa aaa........ aaa aaa'(length is more than 50)
    i want the last space before 50th char.because i want to split the string before last word withing 50 th character
    please help.
    Thanks,
    Shweta

    Hi Shweta,
    You can build up the logic from this below program.
    data: line(75) value 'abcdefghijk lmnopqrstuvwxyz zyxwvutsrqponml kjihgfedc ba',
           n_line(50),
           off type i,
           val1(50),
           val2(50).
    CALL FUNCTION 'STRING_REVERSE'
      EXPORTING
        STRING          = line(50)
        LANG            = ' '
    IMPORTING
       RSTRING         = n_line
    EXCEPTIONS
       TOO_SMALL       = 1
       OTHERS          = 2.
    IF SY-SUBRC NE 0.
       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    SPLIT n_line at space into val1 val2.
    off = strlen( val1 ).
    off = 50 - off.
    write: 'The index of the last space before the 50th position is at ', off.
    Hope this may help you.
    Regards,
    Smart Varghese

  • Creation of secondary indexes for table "RSBATCHCTRL_PAR" failed

    Hi ,
    We have installed EHP1 on our BI7.0 system successfully, later we are trying to apply SPS01 for this EHP but we got the follwoing error during TBATG conversion.
    2 EGT092 Conversion of table "RSBATCHCTRL_PAR" was restarted
    2 EGT241 The conversion is continued at step "6"
    2 EGT246 Type of conversion: "T" -> "T"
    2 EGT240XBegin step "RSBATCHCTRL_PAR-STEP6":
    4 EGT281 sql:
    4 ED0314 CREATE
    4 ED0314 INDEX [RSBATCHCTRL_PAR~DB] ON [RSBATCHCTRL_PAR]
    4 ED0314 ( [JOBNAME] ,
    4 ED0314 [JOBCOUNT] ,
    4 ED0314 [SERVER] ,
    4 ED0314 [HOST] ,
    4 ED0314 [WP_NO] ,
    4 ED0314 [WP_PID] ,
    4 ED0314 [PROCESS_TYPE] )
    4 ED0314 WITH ( ONLINE=OFF )
    4 ED0314 ON [PRIMARY]
    2 ED0314 Line 1: Incorrect syntax near '('.
    3 EDA093 "DDL time(___1):" ".........6" milliseconds
    2EEGT236 The SQL statement was not executed
    2EEDI006 Index " " could not be created completely in the database
    2EEGT221 Creation of secondary indexes for table "RSBATCHCTRL_PAR" failed
    2EEGT239 Error in step "RSBATCHCTRL_PAR-STEP6"
    2 EGT253XTotal time for table "RSBATCHCTRL_PAR": "000:00:00"
    2EEGT094 Conversion could not be restarted
    2 EGT067 Request for "RSBATCHCTRL_PAR" could not be executed
    1 ED0327XProcess..................: "ferrari_12"
    1 ED0302X=========================================================================
    1 ED0314 DD: Execution of Database Operations
    1 ED0302 =========================================================================
    1 ED0327 Process..................: "ferrari_12"
    1 ED0319 Return code..............: "0"
    1 ED0314 Phase 001................: < 1 sec. (Preprocessing of TBATG)
    1 ED0314 Phase 002................: < 1 sec. (Partitioning)
    1 ED0309 Program runtime..........: "< 1 sec."
    1 ED0305 Date, time...............: "03.06.2009", "12:47:21"
    1 ED0318 Program end==============================================================
    1 ETP166 CONVERSION OF DD OBJECTS (TBATG)
    1 ETP110 end date and time   : "20090603124721"
    1 ETP111 exit code           : "8"
    1 ETP199 ######################################
    System properties:
    SAP - BI7.0 with EHP1
    Database - MSSQL 2000
    OS - Windows2003
    Please suggest.
    Thanks in advance,
    Pavan.

    > We have installed EHP1 on our BI7.0 system successfully, later we are trying to apply SPS01 for this EHP but we got the follwoing error during TBATG conversion.
    > 2 ED0314 Line 1: Incorrect syntax near '('.
    > 3 EDA093 "DDL time(___1):" ".........6" milliseconds
    > 2EEGT236 The SQL statement was not executed
    This is a known problem with SQL Server 2000, see
    Note 1180553 - Syntax error 170 during index creation on SQL 2000
    I highly suggest upgrading to SQL Server 2005 or 2008.
    Markus

  • Does dropping bitmap index and creation of b- index cause any dead locks

    Does dropping a bitmap index on table which is being used continuously for DML operations and creation of b- index cause any dead locks on a table
    in oracle 10g database
    ( 10.1.0.4.0 - 64bi).
    we have seen alert log file which has dead lock occurrence.. would index change/re-creation resulted dead lock or some other reason?
    Could you please give us info or help us on this.. thanks in advance..

    Bitmap indexes can be the cause of deadlocks on busy systems.
    Dropping indexes may cause some locking.
    Creating indexes may cause some locking.
    You haven't given any traces or scripts or lock information, so difficult to say which one (if any) was the cause of your deadlocks.
    It would be better to do this activity when the system is not busy.

  • Creation of logical index terminated. Join index create error.

    Hi to all,
    After running for a few weeks fine. See my earlier message Delete and recreate BWA index of a cube in process chain.
    Chains are "terminating" again. I get the following error messages:
    Creation of logical index '[Technical Cube_name]' terminated. Error text:     
    Join index create error;index=bwp_[technical cube_name],location     
    =nlscli63:30203 2433     
    Creation of BIA index for InfoCube '[Technical Cube_name]' terminated during activation
    A manual deletion by the program RSDDTREX_INDEX_DELETE and a recreation in RSDDV is necessarry to get the index active.
    Has anyone a clue on beforehand what is happening or same experiences, before i put in a SAP OSS message.
    Regards,
    René

    Hi
    Firstly please ensure that no error exists for the cube when you are
    trying to create the index. You can check that in RSRV. Also you need
    to check if no change run or loading is occuring.                   
    Please also check that you are not using the backup mode mutual
    as this can cause the problem, please refer to the SAP note 1383228.
    Best Regards,
    Des Gallagher

  • Buffering and creation of secondary indexes.

    Hi All,
    I have a table that has more than 6 million records, due to which performance is slow during the transaction search, kindly let me know if Buffering and creation of secondary indexes will help me.
    I am given to understand that creation of seconary indexes and full buffering may not always improve performance. Kindly let me know when it is advised to go for full buffering.
    Regards,
    Thiru

    Hi,
    create  secondary index  for the table
    check below link
    http://help.sap.com/saphelp_nw70/helpdata/en/cf/21eb20446011d189700000e8322d00/content.htm
    Regards,
    Madhu

  • Batch creation at the time of order creation & confirmation on the batch.

    Hi all,
    My client's requirement is while creation of the production order of say 100 pcs, system should create 4 batches, each of 25 (this might be different every time) of that order & also the confirmation (CO11) should be done on those batches.
    Also if the order contains 10 operations then confirmation of operation no. 0020 should not be possible before confirmation of 10, whether it is for partial & whole quantity.
    You can say these batches will reprsent the lots.
    Regards
    SmanS
    Edited by: SAP PP Consultant on Mar 9, 2009 8:05 AM

    Hi SAP PP
    You can use this function to automatically create a batch for the material to be produced.
    You can make the following settings in Customizing (production scheduling profile):
    No automatic creation of batches in production orders
    Automatic creation of batches during order creation
    Automatic creation of batches during order release
    To carry out automatic batch splitting via batch determination, proceed as follows:
    Select the component that you wish to split and choose Component ® Batch management ® Trigger batch det.
    The system lists all batches that meet the selection criteria and that have available stock on the requirements date.
    Distribute the required quantity as required over the existing batches.
    Choose .
    The system copies each batch as a separate component into the component overview screen.
    For more information refer to Batch Determination.
    To carry out manual batch splitting with manual batch assignment, proceed as follows:
    Select the component for which you want to carry out batch splitting. Choose Edit ® Insert ® Batch split.
    Enter the batch number and the required quantity manually in the component.
    Save your entry.
    Regards
    Sachin

Maybe you are looking for

  • Hard disk failing SMART test

    Hi, It's been 2 days my imac is much slower to boot (about 2min from the startup sound until I get to a responsive desktop). After checking the system with Techtools and Smart Utilities is turns out SMART status is failed. Smart Utilities shows only

  • Why wont my netflix work with silverlight

    Whenever I try to play Netflix it says there is a SIlverlight Installation problem, I uninstall and it then reinstall and goes staight back to the same problem. How do I fix this?

  • IMac to Vizio VX32L HDTV

    Wanting to connect my iMac to the tv. i'm kinda of confused as to which way I should go. First off, Mini-DVI out, right? If so, then M-DVI to RGB or HDMI? Am I going to need an adapter like the macbooks?

  • Could anyone tell me how too change the mouse cursor to the waiting mode?

    Could please anyone tell me how too change the mouse cursor to the waiting mode while my applet is processing? Well i have 3 combos in my applet.....and in my actionPerformed code i have: public void actionPerformed(ActionEvent e) { if (e.getSource()

  • Need a license key....

    downloaded a license key for install and got overun with other projects, came back to work on BEA a month later and the key no longer works. Where do I go to find a new temp license key so we can get on with our beta tests?