Fact Table index vs BIA Index

BIA gurus..
Prior to our BIA implementation we had the drop and rebuild index process variants in our process chains.
Now after the BIA implementation we have the BIA index roll-up process variant included in the process chain.
Is it still required to have the drop and rebuilt index process variants during data load ?
Do the infocube fact table indexes ever get hit after the BIA implementation ?
Thanks,
Ajay Pathak.

I think you still need the delete/create Index variants as it not only helps in query performance but also speeds up the load to your cubes.
Documentation in Perfomance tab:
"Indices can be deleted before the load process and after the loading is finished be recreated. This accelerates the data loading. However, simultaneous read processes to a cube are negatively influenced: they slow down dramatically. Therefore, this method should only be used if no read processes take place during the data loading."
More details at:
[http://help.sap.com/saphelp_nw70/helpdata/EN/80/1a6473e07211d2acb80000e829fbfe/frameset.htm]

Similar Messages

  • BWA Fact Table Index Size

    Hi
    Can anybody tell me how the BWA decides when a fact table index gets split into multiple parts? We have a number of very large cubes that are indexed and some have a fact table index that consists of one logical index which is made up of multiple physical indexes but other, similar sized cubes, just have one very large physical index for the fact table.
    With the one very large physical index we seem to get an overload problem but when they are split into multiple parts we don't.
    Thanks
    Martin

    Hi Martin,
    this depends on the reorg config and the attribute of the index. You can manually trigger a splitting of an index via command 'ROUNDROBIN x', x stand for the number of parts which the index will be split to. Therefore you have to go into trexadmin standalone tool -> landscape right click on index -> split/merge index...
    If you want an automatically split, you have to setup your reorg settings. Goto trexadmin standalone tool -> tab reorg -> options -> here you can choose the type of algorithm. Have a look into note 1313260 and 1163149.
    Do you have a scheduled reorg job?
    Regards,
    Jens
    PS: Every black box can be understood...

  • Select count from large fact tables with bitmap indexes on them

    Hi..
    I have several large fact tables with bitmap indexes on them, and when I do a select count from these tables, I get a different result than when I do a select count, column one from the table, group by column one. I don't have any null values in these columns. Is there a patch or a one-off that can rectify this.
    Thx

    You may have corruption in the index if the queries ...
    Select /*+ full(t) */ count(*) from my_table t
    ... and ...
    Select /*+ index_combine(t my_index) */ count(*) from my_table t;
    ... give different results.
    Look at metalink for patches, and in the meantime drop-and-recreate the indexes or make them unusable then rebuild them.

  • Indexes on a fact table

    Hi All,
    We are trying to build a data warehouse. The data marts would be accessed by cognos reporting layer. In the data marts we have around 9 dimension tables and 1 fact table. For each month we will have around 21-25 million records in the fact table. Out of 9 dimensions there dim1 and dim2 have 21 million and 10 million records respectively. The rest 7 dimensions are very small like less than 10k records.
    In cognos reports they are trying to join the some dimension tables and the fact table to populate some reports. they are taking around 5-6 min.
    I have around 8 B-Tree indexes on this fact table with all possible combination of columns. I believe that these many indexes is not improving the performance. So I decided to create a aggregated table with measures. But in cognos there are some reports which give detailed information from the fact table and that are taking around 8 min.
    please advice as to what type indexes can be created on fact tables.
    I read that we can create bit map indexes based on join conditions but the documentation says that it can include columns only from dimension tables and not fact tables. Should the indexed columns be keys in dimensional tables?
    I have observed that the fact table is around 1.5gb. But each index is around 1.9 -2gb. I was kind of surprised when I saw that figure. Does it imply that index scan and table lookup would take more time than the full table scan? And hence it is not using the indexes.
    Any help is greatly appreciated.
    Thanks
    Hari

    What sort of queries are you running? Do you have an example (with a query plan)?
    Are indexes even useful? Or are you accessing too much data to make indexes worthwhile?
    Are you licensed to use partitioning? If so, are your fact tables partitioned? Are the queries doing partition pruning?
    Are you using parallelism? If so, is parallel query actually being invoked?
    If creating aggregate tables is a potentially useful strategy, you would want to use materialized views with query rewrite.
    Justin

  • ROWNUM is indexed in the Fact table - How to optimize performace with this?

    Hi,
    I have a scenario where there is an index on the Rownum.
    The main Fact table is partitioned based on the job number (Daily and monthly). As there can be multiple entries for a single jobID, the primary key is made up of the Job ID and the Rownum
    This fact table in turn is joined with another fact table based on this job number and rownum. This second fact table is also partitioned on job ID.
    I have few reference tables that are joined with the first fact table with btree index.
    Though in a normal DW scenario we should use bitmap, here we can't do that as lot of other applications are accessing data (DML queries) where bitmap will be slow. So I am using STAR_TRANSFORMATION hint to use the normal index as bitmap index.
    Till here it is fine. Problem is when I simply do a count for a specific partition from a reference table and a fact table, it is using all required indexes as bitmap with very low cost. But also it is using ROWNUM index that is of very very high cost.
    I am relatively new to Oracle tuning. I am not able to understand what it is exactly doing. Could you please suggest if I can get rid of this ROWNUM to make my query performance faster? This index can not be dropped. Is there a way in the hint I can instruct not to use this primary key index?
    Or Even by using is there a way that the performance will be faster?
    I will highly appreciate any help in this regard.
    Regards
    ...

    Just sending the portion having info on the partition and Primary index as the entire script is too big.
    CREATE TABLE FACT_TABLE
    JOBID VARCHAR2(10 BYTE) DEFAULT '00000000' NOT NULL,
    RECID VARCHAR2(18 BYTE) DEFAULT '000000000000000000' NOT NULL,
    REP_DATE VARCHAR2(8 BYTE) DEFAULT '00000000' NOT NULL,
    LOCATION VARCHAR2(4 BYTE) DEFAULT ' ' NOT NULL,
    FUNCTION VARCHAR2(6 BYTE) DEFAULT ' ' NOT NULL,
    AMT.....................................................................................
    TABLESPACE PSAPPOD
    PCTUSED 0
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE (
    INITIAL 32248K
    LOGGING
    PARTITION BY RANGE (JOBID)
    PARTITION FACT_TABLE_1110500 VALUES LESS THAN ('01110600')
    LOGGING
    NOCOMPRESS
    TABLESPACE PSAPFACTTABLED
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    STORAGE (
    INITIAL 32248K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    BUFFER_POOL DEFAULT
    PARTITION FACT_TABLE_1191800 VALUES LESS THAN ('0119190000')
    LOGGING
    NOCOMPRESS
    TABLESPACE PSAPFACTTABLED
    PCTFREE 10
    INITRANS 11
    MAXTRANS 255
    CREATE UNIQUE INDEX "FACT_TABLE~0" ON FACT_TABLE
    (JOBID, RECID)
    TABLESPACE PSAPFACT_TABLEI
    INITRANS 2
    MAXTRANS 255
    LOCAL (
    PARTITION FACT_TABLE_11105
    LOGGING
    NOCOMPRESS
    TABLESPACE PSAPFACT_TABLEI
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE (
    INITIAL 64K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    BUFFER_POOL DEFAULT
    ......................................................

  • Indexes for OWB fact tables

    Hi All,
    I had completed development of my OWB with 10 fact tables, each fact table is having index like(SA_PROD_S_IDX1_1).
    Now Client had given the production database(table space and indexes) with default tablespace USERS and unlimited quota on MASTER_DATA, MASTER_IDX, TRANS_DATA, and TRANS_IDX.
    My Problem is that I can put table space to my fact tables in the table properties, but how to specify my indexes to the dabase indexes.
    Please help me in this regard.
    Regards,
    Kumar.

    Hi,
    I have another problem.
    I Created ProcessFlows and by using email notification, I can send SUCCESS / ERROR / WARNING notification.
    In process flows I have 3 maps.
    When there is any error or warnings in any of the map execution, I am getting only message which I put in my email subject body, but I am not getting exactly which map got error or warnings.
    Is there any way to send the execution details of the map through mail notification.
    Or Please suggest me to do any solution.
    Regards,
    Kumar

  • Dimension table, indexing business key

    Hi.
    I my dimension table business key is Unique key constraint and business key is also a index key (unique).
    My question is why is important for dimension to have index?
    In my mapping I first load data into dimension and to merge data I use business key. Ok, business key is unique so I'm merging by constraint (UK).
    I have a fact table mapping where I use previous dimension for lookup, and I do lookup by a business key.
    I understand why we have index in fact tables, but in dimension?
    When and why does business key index help me?

    Hi,
    There are many reasons why we use indexex on dimensions.
    1) The source key or natural key may or may not be a unique one in case of SCD2 and hence its faster to look up w.r.t the index key rather than the source key.
    2) It is not a good idea to have all the source keys from ur dimensions in ur fact. We have to have the index keys anyway to speed up the process of quering.
    3) The index key is always unique and so u will always land on only 1 record on any look up
    Regards
    Bharath

  • Dimension table indexes

    All dimension table, non-key columns
    should have individual bitmap indexes.
    All fact table, foreign key columns must
    have individual bitmap indexes on them.
    By doing the above will the performance for joins be better.?
    Rakesh

    Well do remember bitmap indexes are best on columns where there not so many unique values. Everyone has differing opinions on what that # ought to be. In other words, the cardinality, or # of unique elements is not extremely high.
    IN general, bitmap indexes will improve performance given that the CBO is using them.
    Look at this post, it is a pretty good discovery on this sort of thing. it tends to be a design process, where you test with your given dataset and optimize it.
    http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/
    -Greg

  • Partitioned table Indexing

    Hi Experts,
    I wanted to repartition my cube, so I compressed my Cube and repartition on the basis of 0calmonth.
    Now When I check the Index structure of F and E fact table. F table has got Index 900 or Local Partition Index based on SID_0CALMONTH but E table does not have such kind of Index.
    Now my question is after compression my data is in E fact table and partitioined successfully, so how does this Index 900 help Fetching partitioned data from E fact table when it is based on F fact table ??
    Thanks & Regards,
    Subbuji

    Hi Suman,
    I am not seeing data in F table, obviously there will be no data in F table after compression.
    I am checking the Indices in F table and there I found Index 900, which is nothing but Index on Partition key.
    My Question is if  it is recommended to Partitiion after compression or Partition the E table then why the index is based on F table ? or why there is no such kind of index on E table.
    Thanks & Regards,
    Subbuji

  • How to obtain the table index in word use LabVIEW Report Generation Toolkit for Microsoft Office

    I created a word templete and it had several tables. When I use the "Word Edit Cell" function in LabVIEW Report Generation Toolkit for Microsoft Office, the function need "table index", and I didn't find any function to get or set the table index in word document. How can I achieve my attention to write value to specified table cell using the "Word Edit Cell" function?
    Thanks for reply!
    YangAfreet

    Hi yangafreet
    You do not need to get the table index for the word edit cell.vi from anywhere. LabVIEW will automatically index all the tables in the document. See the attatched vi for an example.
    Rich
    Attachments:
    Table Edit.vi ‏23 KB

  • To Use  Cursor or  TYPE table Index by PLS_integer

    Hi All,
    Let's see if I have table with no. of records 19,26,20,000.
    If I want to loop through all the records which will be a optimized way To Use Cursor or TYPE table Index by PLS_integer.
    Please guide.
    Thanks.

    What is it you want to do to/with the rows you're looping through?
    Ideally you want to avoid looping, as that's row by row (aka slow by slow) processing and it's expensive time-wise.
    If you're doing DML (insert/update/delete) then you're best off doing it in one sql statement, rather than looping.

  • Need to find total no fo  tables/index/m.views in my database

    Hello Everyone ;
    How can i find total no fo  tables/index/m.views in my database ?
    when i  google  i have seen  following  command ;
    SQL> Select count(1) from user_tables where table_name not like '%$%' /
      COUNT(1)
             but i dont understand  what  '%$%'  indicates ?
    Thanks all ;

    Hello Everyone ;
    How can i find total no fo  tables/index/m.views in my database ?
    when i  google  i have seen  following  command ;
    SQL> Select count(1) from user_tables where table_name not like '%$%' /
      COUNT(1)
             but i dont understand  what  '%$%'  indicates ?
    Thanks all ;
    consider to simply Read The Fine Manual YOURSELF!
    Oracle Database Search Results: like

  • New tables & indexes created do not show up in dba_segments view

    Dear all,
    I have created 3 tables and some indexes, but these objects do not show up in dba_segments view. Is this a normal behaviour? Previously, with dictionary managed tablespace, I can specify the minimum extent to create, when the table/index is created. But I'm not sure how the locally managed tablespace work. Please do advice. Thank you very much in advance.
    I'm using Oracle 11g R2 (11.2.0.1.0) for Microsoft Windows (x64), running on Windows 7.
    For the purpose of reproducing this issue, I have created the tablespaces as follow:
    CREATE TABLESPACE CUST_DATA
    DATAFILE 'd:\app\asus\oradata\orcl11gr2\CUST_DATA01.DBF' SIZE 512K
    AUTOEXTEND ON NEXT 256K MAXSIZE 2000K
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K
    SEGMENT SPACE MANAGEMENT AUTO;
    CREATE TABLESPACE CUST_INDX
    DATAFILE 'd:\app\asus\oradata\orcl11gr2\CUST_INDX.DBF' SIZE 256K
    AUTOEXTEND ON NEXT 128K MAXSIZE 2000K
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
    SEGMENT SPACE MANAGEMENT AUTO;
    CREATE TABLE CUSTOMER_MASTER (CUST_ID VARCHAR2 (10),
    CUST_NAME VARCHAR2 (30),
    EMAIL VARCHAR2 (30),
    DOB DATE,
    ADD_TYPE CHAR (2) CONSTRAINT CK_ADD_TYPE CHECK (ADD_TYPE IN ('B1','B2','H1','H2')),
    CRE_USER VARCHAR2 (5) DEFAULT USER,
    CRE_TIME TIMESTAMP (3) DEFAULT SYSTIMESTAMP,
    MOD_USER VARCHAR2 (5),
    MOD_TIME TIMESTAMP (3),
    CONSTRAINT PK_CUSTOMER_MASTER PRIMARY KEY (CUST_ID) USING INDEX TABLESPACE CUST_INDX)
    TABLESPACE CUST_DATA;
    SQL> SELECT TABLE_NAME, TABLESPACE_NAME
    2 FROM USER_TABLES
    3 WHERE TABLE_NAME LIKE 'CUST%';
    TABLE_NAME TABLESPACE_NAME
    CUSTOMER_MASTER CUST_DATA
    SQL> SELECT INDEX_NAME, TABLESPACE_NAME
    2 FROM USER_INDEXES
    3 WHERE TABLE_NAME LIKE '%CUST%';
    INDEX_NAME TABLESPACE_NAME
    PK_CUSTOMER_MASTER CUST_INDX
    SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, BYTES
    2 FROM USER_SEGMENTS;
    no rows selected

    Prior to 11g, when you created a table or whatever, you automatically allocated one extent.
    This is now no longer true and depends on a parameter I don't remember.
    dba_segments is a summary of dba_extents.
    Obviously, if there is no extent allocated, the table (view is defined with inner join) will not show up.
    You could qualify this is as a bug and submit a SR to Oracle. But then the performance impact may be huge.
    Sybrand Bakker
    Senior Oracle DBA

  • Is it permissable to extend an SAP-provided table index?

    (Please note I realize this might not be the best forum for this post; I did look at ABAP development, SAP on Oracle, and a few others, but given some other threads, it seemed like this might be the best place for it.  Apologies if not).
    We have a very large table (GMIA), and I noticed that two customer-created indexes can essentially be combined into one because the first index is RGRANT_NBR plus fields A and B, and the second index is RGRANT_NBR plus fields A, B, C, D, and E.  So I might as well get rid of the first index and just keep the second one having RGRANT_NBR plus fields A through E.
    However, I noticed that SAP-provided index 4 contains simply one field - RGRANT_NBR.  So ideally, I could just add fields A, B, C, D, and E to index 4, then I could get rid of my second customer-created index.
    Question:  Is it permissable to extend an SAP-provided index like this?  As a developer, I'm not in the modifying SAP objects business, but this is the first time I've been presented this situation with a table index.  Given that our GMIA table has MILLIONS of records in it, getting rid of another customer-created index completely might be a great opportunity.
    Thoughts?
    Dave

    I really don't have a requirement for this.  I'm a developer, and I've noticed some of our biggest timeout issues concern programs that hit table GMIA.  So I thought I'd take a look at GMIA and our indexes to learn more about it via SE11 and DB02.
    In our Production environment, we have over 88 million records in this table for a table size of 38.23 GB.  Aside from the 6 SAP-provided indexes, 8 customer indexes have been created by others over time.  It was in looking at these indexes that I noticed our 8th customer index, ZS8, is essentially the same 3 fields as ZS3, plus a few more fields.  Ideally, ZS8 should NOT have been created, and ZS3 should have simply been extended with the additional fields.
    It was suggested to me in another thread a long while back that I could potentially get rid of ZS3 as well and just make SAP index 4 look like ZS8 because SAP index 4 is just indexed by Grant Number (RGRANT_NBR).  ZS8's first index field is Grant Number followed by 5 or 6 additional fields.  That's why I was wondering if it was even a "thing" or a possibility to extend an SAP index, but customizing an SAP component makes Dave a very, VERY nervous boy.
    Basically, I'm alarmed at the number of records in the table and the number of indexes we have.  There's no archiving strategy here, so I probably can't do anything about the number of records in GMIA, which go back to 2006 when we first went live with SAP.  But I can clearly get rid of one customer-created index (ZS3).  And if I can deactivate SAP index 4, I would assume the system would then automatically use ZS8 since the first field is Grant Number for situations where it would have used SAP index 4.
    So that's the background here.  Honestly, I don't know how much improvement these things will make, but getting rid of ZS3 will save 5 GB of space, and presumably "deactivating" SAP index 4 would save almost 5 GB as well.  I'm assuming we might see some negligible performance gains on our table operations involving GMIA, but it's still a beast with a large number of indexes, so I don't know.
    I'm really, really interested in hearing from others' thoughts and recommendations -- your input is MOST welcome here!
    Dave

  • Problem with table-indexes when using select-options in select

    Hello experts,
    is it right that table-indexes will not be used if you take select-options to select data from the database?
    in detail:
    i have build up an table-index for one of our db-tables and test it via an test-programm. The first test with '=' comparisons worked fine. Every key of the index was used; checked via ST05!
    e.g.:    SELECT * FROM TABLEA INTO ITAB WHERE keya = '1' AND keyb = '2' AND keyc = '3'.
    Now i startet the test with select-options
    e.g.:   SELECT * FROM TABLEA INTO ITAB WHERE keya IN seltabA  AND keyb IN seltabB AND keyc IN seltabC.
    First of all i just filled the seltabs with only 1 value:    eg:  seltabA=      SIGN = 'I'   OPTION = 'EQ'   LOW = '1'     etc.
    Everything worked fine. Every key of the index was used.
    But now, I putted more than one entries in the seltabs e.g.
    seltabA:      SIGN = 'I'   OPTION = 'EQ'   LOW = '1'
                       SIGN = 'I'   OPTION = 'EQ'   LOW = '2'   
                       SIGN = 'I'   OPTION = 'EQ'   LOW = '3'
    From now on, the indexed was not used completely (with all keys).
    Isn't that strange? How can i use select-options or sel-ranges with using the complete table-indexes?
    Thanks a lot,
    Marcel

    Hi Hermann,
    i hope this helps:
    this is the first one, which uses the complete index:
    SELECT                                                                     
      "KOWID" , "LIFNR" , "KLPOS" , "ORGID" , "KOART" , "MATNR" , "GLTVON" ,   
      "GLTBIS" , "WERT" , "ABLIF" , "FAKIV" , "AENAM" , "AEDAT" , "AFORM" ,    
      "HERSTELLER" , "ARTGRP" , "OE_FREITXT" , "ARTFREITEXT" , "STATUS" ,      
      "TERDAT"                                                                 
    FROM                                                                       
      "/dbcon/01_con"                                                       
    WHERE                                                                      
      "MANDT" = ? AND "LIFNR" = ? AND "ORGID" = ? AND "KOART_BASIS" = ? AND    
      "STATUS" = ? AND "GEWAEHR_KOWID" < ? AND ( "STATUS" = ? OR "STATUS" = ? OR
      "STATUS" = ? )  WITH UR                 
    RESULT: 5 IXSCAN /dbcon/01_con05 #key columns:  4
    And the second one, which does not use the complete index! The 3 ranges are filled each with 2 values. Remember; when i fill them each with only one value, the result is the same as you can see above(/dbcon/01_con05 #key columns:  4):
    SELECT                                                                     
      "KOWID" , "LIFNR" , "KLPOS" , "ORGID" , "KOART" , "MATNR" , "GLTVON" ,   
      "GLTBIS" , "WERT" , "ABLIF" , "FAKIV" , "AENAM" , "AEDAT" , "AFORM" ,    
      "HERSTELLER" , "ARTGRP" , "OE_FREITXT" , "ARTFREITEXT" , "STATUS" ,      
      "TERDAT"                                                                 
    FROM                                                                       
      "/dbcon/01_con"                                                       
    WHERE                                                                      
      "MANDT" = ? AND "LIFNR" IN ( ? , ? ) AND "ORGID" IN ( ? , ? ) AND        
      "KOART_BASIS" IN ( ? , ? ) AND "GEWAEHR_KOWID" < ? AND ( "STATUS" = ? OR 
      "STATUS" = ? OR "STATUS" = ? )  WITH UR                                  
    and here the access-plan
       0 SELECT STATEMENT ( Estimated Costs =  5,139E+01 [timerons] )                                                                               
    5     1 RETURN                                                                               
    5     2 NLJOIN                                                                               
    5     3 [O] TBSCAN                                                                               
    5     4 SORT                                                                               
    5 TBSCAN GENROW                                                                               
    5     6 <i> FETCH /dbcon/01_con                                                                               
    7 IXSCAN /dbcon/01_con05 #key columns:  2   
    As you can see, only 2 keys were taken for indexed selection!
    Any idea?
    Kind regards,
    MArcel
    Edited by: Marcel Ebert on Jul 28, 2009 5:25 PM

Maybe you are looking for

  • Retrieving data from a mirrored drive

    Hello, Can anyone advise how to retrieve/access the data on a mirrored drive? Both the primary drive and the mirrored drive do not load onto the desktop, and in Disk Utility only the mirrored drive shows up in the list of drives, unhighlighted. The o

  • How to get Mail to stop rewriting addresses in mail headers

    Here is the scenerio: - I have an address book entry for "Bob and Alice Smith" with an email address "[email protected]" - Bob sends me email. He has his email client set up to send a From: line to be "Robert Smith <[email protected]>" to differentia

  • How to copy my Safari Bookmarks to another apple ID device

    Hi all, I have my own iMac with my own Safari bookmarks. My wife used to share my bookmarks on iMac, but now she has her own iPad with her apple id, so she can't see my bookmarks on iPad. I already tried to export my bookmarks and send to her by emai

  • Java stored procedures connection context

    In my Oracle database there are two java stored procedures: A java stored procedure P1 having Connection conn1 = DriverManager.getConnection("jdbc:default:connection") and a java stored procedure P2 having Connection conn2 = DriverManager.getConnecti

  • How the System calculate GR/IR Prices in Material Ledger

    Dear All, Please any body help me regarding: How the prices calculation happen during the  Goods Rereipt (GR) & Invoice Receipt (IR) prices in Material Ledger same period and next period. Exampls as follows, If one material GR happened February, 2011