Index Compression in SAP - system/basis tables?

Hi!
In thread Oracle comression in SAP environments the Oracle 10g feature index compression was discussed. We are now going to implement it also. SAP and Oracle say, this can be done for any index.
So we selected the biggest and the most frequently used indexes and analyzed them. We could save about 100GB disk space.
But here comes my question:
In the hitlist of our most frequently used and biggest Indexes there are also some basis table indexes.
A few samples:
BALHDR~0
BALHDR~1
BALHDR~2
BALHDR~3
BDCP~0
BDCP~1
BDCP~POS
BDCPS~0
BDCPS~1
CDCLS~0
CDHDR~0
D010INC~0
D010INC~1
D010TAB~0
D010TAB~1
DD01L~0
DD03L~5
DD07L~0
E071K~0
E071K~ULI
GVD_LATCHCHILDS~0
GVD_OBJECT_DEPEN~0
GVD_SEGSTAT~0
QRFCTRACE~0
QRFCTRACE~001
QRFCTRACE~002
REPOSRC~0
SCPRSVALS~0
SEOCOMPODF~0
SMSELKRIT~0
SRRELROLES~0
SRRELROLES~002
STXH~0
STXH~REF
STXL~0
SWW_CONT~0
TBTCS~1
TODIR~0
TRFCQOUT~5
USR02~0
UST04~0
VBDATA~0
VBMOD~0
WBCROSSGT~0
Is it really recommended to compress indexes of SAP Basis Tables also - especially in the area of Repository/Dictionary, t/qRFC and/or "Verbuchung" (VB...)?
Thanx for any hint and/or comment!
Regards,
Volker

Hi Volkar,
I have succesfully tested the oracle index compression on ECC5 environment for the following tables in a sandbox environment;
ppoix
pcl2
pcl4
In total I saved around 60GB in the tablespaces.
Before compression I started a payroll run to see what time this will take without compression.
After compression of the indexes I re-executed the payroll which took exactly the same time as without compression (2 hours). So no impact on performance.
Also did an update statistics in DB13 -> no impact
With brtools: force update of specific table -> no impact
So we are seriously thinking about to take this into production.
I have also looked at BI environment but concluded that there was nothing to gain.
Unfortunately our infocubes are well build meaning that the fact tables contains the actual data and the corresponding dimension tables only the surrogate IDu2019s (SIDu2019s).
Those dimension tables are actually very small (64k) and not suitable for index compression.
Next step will be some Workflow tables.
Fe:
SWW_CONT~0                   INDEX        PSAPFIN           26.583.040
SWPNODELOG~0                 INDEX        PSAPFIN           15.589.376
SWWLOGHIST~0                 INDEX        PSAPFIN           13.353.984
SWWLOGHIST~1                 INDEX        PSAPFIN            8.642.560
SWW_CONTOB~0                 INDEX        PSAPFIN            8.488.960
SWPSTEPLOG~0                 INDEX        PSAPFIN            6.808.576
SWW_CONTOB~A                 INDEX        PSAPFIN            6.707.200
SWWLOGHIST~2                 INDEX        PSAPFIN            6.507.520
SWW_WI2OBJ~Z01               INDEX        PSAPFIN            2.777.088
SWW_WI2OBJ~0                 INDEX        PSAPFIN            2.399.232
SWWWIHEAD~E                  INDEX        PSAPFIN            2.352.128
SWP_NODEWI~0                 INDEX        PSAPFIN            2.304.000
SWW_WI2OBJ~001               INDEX        PSAPFIN            2.289.664
SWWWIHEAD~A                  INDEX        PSAPFIN            2.144.256
SWPNODE~0                    INDEX        PSAPFIN            2.007.040
SWWWIRET~0                   INDEX        PSAPFIN            2.004.992
SWW_WI2OBJ~002               INDEX        PSAPFIN            1.907.712
If you would like to know, I can post the results on workflow tables (indexes) on ECC6 environment.
Please rewards some point if you like.
Regards,
Stephan van Loon

Similar Messages

  • Index compression in R3load system copy target db2 9.7

    We are in the early stages in planning a unicode migration:
    source
    ECC 6 on db2 9.1
    target
    Unicode ECC 6 on db2 9.7.
    OS a constant at AIX 5.3.
    The default behavior of system copy (target db=DB6) is index creation before data load.
    If I run systen copy specifying row comression, a compression dictionary is automatically created for suitable tables, but all indexes were created while the table was empty.  The resulting Db2 9.7 database has compressed tables but NO indexes are compressed.
    What is the current recommendation on index creation?  Does a db2 9.7 target with row compession selected change the recommendation?
    Should I be using a DDL mapping file (mapping large files to DDLDB6_LRG.TPL)?
    The DDLDB6_LRG.TPL could be tweaked to create indexes after table load...
    I would need to plan target LOG environment and temp space large enough for index creation of our largest tables...
    I don't think the default log settings would suffice.
    Ken Chamberlain

    I was thinking of using a DDLMAP file to map large tables/indexes to DDLDB6_LRG.TPL, and edit this file from prikey: BEFORE_LOAD (and seckey: BEFORE_LOAD) to AFTER_LOAD.  I can use the export to select out tables greater than a certain size into their own jobs.  I can use the resulting job list to create said DDLMAP file.  When indexes get created before the load, they never get the compress attribute.  If they were created after the load they would inherit their base tables compress attribute, which by this time table compression presumably has been turned on if applicable.
    But perhaps a better idea would be to add COMPRESS YES to the crepky and creind sections of the same file (and not change BEFORE_LOAD to AFTER_LOAD).
    I'm assuming large tables have large indexes which would benifit from compression.  This would also catch large tables (with large indexes) which don't compress well and don't get compressed.  I'll ignore large tables with small indexes for now.
    PS I resently installed Solution Manager 7.01 on linux db2 9.7 specifying row compression - no indexes get compressed but many tables do.
    What do you think?  Is this a better solution (for implementing index compression during a unicode migration)?
    Ken

  • Table & Index Compression on 11g

    Hi,
    We are planning to upgrade oracle ( RAC ) from 10.2.0.4  to 11.2 and planning to turn on table and index compression. I would like to learn the pros & cons of turning compression on in a 6TB database. Any performance issues after table/index compression .
    Thanks
    Prince Jose

    Hey Prince,
    Just check out the below thread if it can give you some idea for the same...
    Re: Index Compression in SAP - system/basis tables?

  • Compression for oracle database and index compression during import of data

    Hi All,
    I have a query , in order to import into oracle database and also have compression and index compression , do we have some kind of load args for r3load and also do we have to change the tpl file ?

    Hello guy,
    I did this kind of compression within migration project before.
    I performed index compress first and then export -> import with table compress.
    One thing you should take care, delete nocompress flag from TARGET.SQL (created by program SMIGR_CREATE_DDL, program SMIGR_CREATE_DDL created pure non-compression objects for these considered non-standard tables). For table columns > 255, we should not delete this flag.
    Regarding to the index compress in source system, please check the following notes:
    Note 1464156 - Support for index compression in BRSPACE 7.20
    Note 1109743 - Use of Index Key Compression for Oracle Databases
    Note 682926 - Composite SAP note: Problems with "create/rebuild index"
    Best Regards,
    Ning Tong

  • How to get list of indexes compressed using Key Compression !!

    Hi....Experts.
    How can i find out INDEXES compresses in my system using Index Key compression as explained in  Note #1109743
    Ref : SAP Note 1109743 - Use of Index Key Compression for Oracle Databases
    Ref : Find out INDEX type ?? for INDEX Key Compressions. !!!
    (or)
    I got a foolish question in my mind,
    Rgds

    Hi,
    Check Section 17 of Note 1289494 - FAQ: Oracle compression
    How do I determine which tables and indexes have active compression?
    SELECT
      OWNER,
      INDEX_NAME,
      NULL PARTITION_NAME,
      PREFIX_LENGTH
    FROM
      DBA_INDEXES
    WHERE
      COMPRESSION = 'ENABLED'
    UNION ALL
    ( SELECT
        INDEX_OWNER OWNER,
        INDEX_NAME,
        PARTITION_NAME,
        NULL PREFIX_LENGTH
      FROM
        DBA_IND_PARTITIONS
      WHERE
        COMPRESSION = 'ENABLED'
    ORDER BY
      OWNER,
      INDEX_NAME;
    Hope  it helps.
    Thanks
    Sushil

  • Which Logical data base has SAP System tables (EDI)

    Hi,
    Which Logical database has SAP System tables(related to EDI-Cross application).
    Could you please any one share this your thoughts.
    Points will be rewared.
    Thanks,
    Senthil

    Hi,
    you can search with se11 - where used list - logical database
    A.

  • Creating index for standard SAP tables

    Hi!
    What are the advantages and disadvantages of creating addtional indexes for tables with massive amount of data (BSEG, BKPF, COEP, etc...).
    If I create a new index it supposed to make the table access faster, for the cost of hard disk space.
    Am I right?
    Thank you
    Tamá

    Hi,
    Primary and secondary indexes
    Index: Technical key of a database table.
    Primary index: The primary index contains the key fields of the table and a pointer to the non-key fields of the table. The primary index is created automatically when the table is created in the database.
    Secondary index: Additional indexes could be created considering the most frequently accessed dimensions of the table.
    Structure of an Index
    An index can be used to speed up the selection of data records from a table.
    An index can be considered to be a copy of a database table reduced to certain fields. The data is stored in sorted form in this copy. This sorting permits fast access to the records of the table (for example using a binary search). Not all of the fields of the table are contained in the index. The index also contains a pointer from the index entry to the corresponding table entry to permit all the field contents to be read.
    When creating indexes, please note that:
    An index can only be used up to the last specified field in the selection! The fields which are specified in the WHERE clause for a large number of selections should be in the first position.
    Only those fields whose values significantly restrict the amount of data are meaningful in an index.
    When you change a data record of a table, you must adjust the index sorting. Tables whose contents are frequently changed therefore should not have too many indexes.
    Make sure that the indexes on a table are as disjunctive as possible.
    (That is they should contain as few fields in common as possible. If two indexes on a table have a large number of common fields, this could make it more difficult for the optimizer to choose the most selective index.)
    Accessing tables using Indexes
    The database optimizer decides which index on the table should be used by the database to access data records.
    You must distinguish between the primary index and secondary indexes of a table. The primary index contains the key fields of the table. The primary index is automatically created in the database when the table is activated. If a large table is frequently accessed such that it is not possible to apply primary index sorting, you should create secondary indexes for the table.
    The indexes on a table have a three-character index ID. '0' is reserved for the primary index. Customers can create their own indexes on SAP tables; their IDs must begin with Y or Z.
    If the index fields have key function, i.e. they already uniquely identify each record of the table, an index can be called a unique index. This ensures that there are no duplicate index fields in the database.
    When you define a secondary index in the ABAP Dictionary, you can specify whether it should be created on the database when it is activated. Some indexes only result in a gain in performance for certain database systems. You can therefore specify a list of database systems when you define an index. The index is then only created on the specified database systems when activated
    Thanks and Regards
    Arun Joseph

  • Basis work for SAP system copy using DB2 cloning tool

    My company is using the DB2 cloning tool, formerly from MainStar. Our DBAs have used this tool to create a clone of a technical sandbox (ST1) to another DB2 instance (SZ1).
    I am reading through the System Copy for SAP Systems Based on SAP NetWeaver 2004s SR2 ABAP+Java guide and trying to follow the steps.
    As information, our application servers are currently running on zLinux and I am trying to do a system copy of an HA ABAP+Java SID.
    Since we have used the cloning tool, which I would equate to a homogeneous system copy using database specific tools, the guide looks like it says I can skip the Export Preparation and Table Splitting Preparation steps. The only other step for the source system is the Database and Central Instance Export.
    When I execute this step, it creates a dump of the database. This seems useless as we already have a cloned copy of the database.
    Does anyone have the list of Basis tasks for a system copy when the DB2 cloning tool is used?
    Brian

    Nevermind. If someone sets:
    rdisp/j2ee_start = 0
    in an ABAP+Java system, sapinst behaves strangely during the system export and does not give the option to only dump the filesystem. Bug?
    Brian

  • Creating tables on SQL studio and viewing the table in the SAP system

    i have just created a table using the SQL studio and wants to use it view it in the SAP system using the SAP logon. till now i have not found a way to create it therefore any help is much appreciated.

    Hmm... you want to see tables via SAPLogon ??
    Ok, let's assume you really want to access tables via ABAP instead.
    For that you've two options:
    1. Create the table in the ABAP dictonary (SE11) exactly like you created it in the database and activate the table.
    After that you can access the table via SE16 or any ABAP as you like.
    2. You don't create the table in the ABAP dictonary and use native SQL to access the data.
    Neither of these options is meant to be the way to do it.
    The correct way would be to design the whole table in the ABAP dictionary and create the table on the database from that.
    regards,
    Lars

  • Hi prloblem while importing the table in to sap system

    hi
    I exported a table from sap and set the values and i am importing same table to sap system
    when I am executing that function i am getting following error at mConnection.execute();
    error
    com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: Illegal access to a string (offset too large)
    at com.sap.mw.jco.rfc.MiddlewareRFC$Client.nativeExecute(Native Method)
    at com.sap.mw.jco.rfc.MiddlewareRFC$Client.execute(MiddlewareRFC.java:1242)
    at com.sap.mw.jco.JCO$Client.execute(JCO.java:3816)
    at com.sap.mw.jco.JCO$Client.execute(JCO.java:3261)
    at com.example.Testing.main(Testing.java:46)
    my program
    package com.example;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
    import com.sap.mw.jco.*;
    import com.sap.mw.jco.JCO.AbapException;
    import com.sap.mw.jco.JCO.Structure;
    import com.sap.mw.jco.JCO.Table;
    import com.sap.mw.jco.support.SapInfo.MyRepository;
    public class Testing {
    @SuppressWarnings("deprecation")
    public static void main(String[] args) {
    JCO.Client mConnection;
    JCO.Repository mRepository;
    JCO.Function function;
    mConnection = JCO.createClient("800", "AGORE", "sap333", "EN","10.25.116.33", "00");
    mConnection.connect();
    mRepository = new JCO.Repository("ARAsoft", mConnection);
    IFunctionTemplate ft = mRepository.getFunctionTemplate("ZBAPI_CREATE_QUOTATION3");
    function = ft.getFunction();
    if (function == null) {
    System.out.println("ZBAPI_CREATE_QUOTATION3" + " not found in SAP.");
    JCO.ParameterList list = function.getTableParameterList();
    JCO.Table ztable = list.getTable("QUOTATION");
    for (int i = 0; i < 3; i++) {
    ztable.appendRow(); //ztable.setValue(value, field name)
    ztable.setValue("6000000012"+ i,"RFQ_NUMBER");
    ztable.setValue("00010"+ i,"ITEM");
    ztable.setValue("0020"+ i,"PRICE");
    list.setValue(ztable,"QUOTATION");
    System.out.println(ztable);
    System.out.println(list);
    function.setTableParameterList(list);
    try
    mConnection.execute(function);
    catch(Exception e)
    e.printStackTrace();
    System.exit(1);
    JCO.Table codes = null;
    try {
    codes = function.getTableParameterList().getTable("QUOTATION");
    System.out.println("Return Values starts HERE:");
    for (int i =0; i < codes.getNumRows(); i++){
    codes.setRow(i);
    System.out.println(codes.getString("MANDT")+ '\t'+
    codes.getValue("RFQ_NUMBER")+ '\t'+
    codes.getString("ITEM")+ '\t'+
    codes.getString("PRICE")); }
    catch (Exception ex) {
    ex.printStackTrace();
    System.exit(2);
    mConnection.disconnect();

    Guys,
    I am able to solve the problem. I think the problem is Language settings difference between Database and OWB repository.

  • CC&B 2.3.1 - Custom indexes for base tables

    Hi,
    We are seeing a couple of statements in the database that could improve its performance with new custom indexes on base tables. Questions are:
    - can we create new indexes on base tables ?
    - is there any recommendations about naming, characteristics and location for this indexes ?
    - is there any additional step to do in CC&B in order to use the index (define metadata or ...) ?
    Thanks.
    Regards.

    Hi,
    if it necessary You can crate custom index.
    In this situation You should follow naming convention from Database Design Standards:
    Indexes
    Index names are composed of the following parts:
    +[X][C/M/T]NNN[P/S]+
    +•     X – letter X is used as a leading character of all base index names prior to Version 2.0.0. Now the first character of product owner flag value should be used instead of letter X. For client specific implementation index in Oracle, use CM.+
    +•     C/M/T – The second character can be either C or M or T. C is used for control tables (Admin tables). M is for the master tables. T is reserved for the transaction tables.+
    +•     NNN – A three-digit number that uniquely identifies the table on which the index is defined.+
    +•     P/S/C – P indicates that this index is the primary key index. S is used for indexes other than primary keys. Use C to indicate a client specific implementation index in DB2 implementation.+
    Some examples are:
    +•     XC001P0+
    +•     XT206S1+
    +•     XT206C2+
    +•     CM206S2+
    Warning!  Do not use index names in the application as the names can change due to unforeseeable reasons
    There is no additional metadata information for indexes in CI_MD* tables - because change of indexes does not influence generated Java code.
    Hope that helps.
    Regards,
    Bartlomiej

  • Index not using the base table

    Hi,
    In which scenario, a query will only use the index and not the base table. Please give me some example.
    Thanks,
    Santhosh
    Edited by: Santhosh on Oct 23, 2012 2:45 AM

    Chancal,
    not always,
    SQL> desc temp;
    Name                                                                                                      Null?    Type
    EMPNO                                                                                                              NUMBER(4)
    ENAME                                                                                                              VARCHAR2(10)
    JOB                                                                                                                VARCHAR2(9)
    MGR                                                                                                                NUMBER(4)
    HIREDATE                                                                                                           DATE
    SAL                                                                                                                NUMBER(7,2)
    COMM                                                                                                               NUMBER(7,2)
    DEPTNO                                                                                                             NUMBER(2)
    SQL> select empno from temp;
         EMPNO
          7369
          7499
          7521
          7566
          7654
          7698
          7782
          7788
          7839
          7844
          7876
          7900
          7902
          7934
          1057
    15 rows selected.
    SQL> select * from table(dbms_xplan.display_cursor);
    PLAN_TABLE_OUTPUT
    SQL_ID  3qt0w20pqj162, child number 0
    select empno from temp
    Plan hash value: 3800668828
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |       |       |     2 (100)|          |
    |   1 |  TABLE ACCESS FULL| TEMP |    15 |    60 |     2   (0)| 00:00:01 |
    13 rows selected.
    SQL> alter table temp modify(empno not null);
    Table altered.
    SQL> select empno from temp;
         EMPNO
          1057
          7369
          7499
          7521
          7566
          7654
          7698
          7782
          7788
          7839
          7844
          7876
          7900
          7902
          7934
    15 rows selected.
    SQL> select * from table(dbms_xplan.display_cursor);
    PLAN_TABLE_OUTPUT
    SQL_ID  3qt0w20pqj162, child number 0
    select empno from temp
    Plan hash value: 472861760
    | Id  | Operation        | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT |          |       |       |     1 (100)|          |
    |   1 |  INDEX FULL SCAN | IDX_TEMP |    15 |    60 |     1   (0)| 00:00:01 |
    13 rows selected.

  • Extract Tables/views into ECC 5.0 SAP system from Non-SAP system

    Hi,
    I am looking for some inputs on how to set up the following scenario of extracting data stored in tables/views in a non-sap external system into my SAP ECC 5.0 SAP database.
    Currently we are using a middleware between SAP and the external system to fetch data. I would like to get rid of the middleware and set up a scenario to call this non-sap external system and pull data stored in views into our SAP system directly. Is that possible in SAP version 5.0? If yes let me know the steps to be performed... do I need to set up XI ?

    maybe you can access sap data using some connector such as java or .net connector.

  • Indexed views using indexes on base table

    Hi all,
    CREATE VIEW Sales.vOrders
    WITH SCHEMABINDING
    AS
    SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Revenue,
    OrderDate, ProductID, COUNT_BIG(*) AS COUNT
    FROM Sales.SalesOrderDetail AS od, Sales.SalesOrderHeader AS o
    WHERE od.SalesOrderID = o.SalesOrderID
    GROUP BY OrderDate, ProductID;
    GO
    --Create an index on the view.
    CREATE UNIQUE CLUSTERED INDEX IDX_V1
    ON Sales.vOrders (OrderDate, ProductID);
    GO
    --This query can use the indexed view even though the view is
    --not specified in the FROM clause.
    SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Rev,
    OrderDate, ProductID
    FROM Sales.SalesOrderDetail AS od
    JOIN Sales.SalesOrderHeader AS o ON od.SalesOrderID=o.SalesOrderID
    AND ProductID BETWEEN 700 and 800
    AND OrderDate >= CONVERT(datetime,'05/01/2002',101)
    GROUP BY OrderDate, ProductID
    ORDER BY Rev DESC;
    In the above code block, Sales.SalesOrderDetail and Sales.SalesOrderHeader are base tables.
    Say suppose there are some indexes on some of the columns of these base tables. Are these indexes used when we write a query in which indexed view is mentioned
    in the from clause?
    Thanks, Srikar

    SO far as its a indexed view it wont use the indexes on base tables when you use it in a query as indexed view is persisted and exists as a physical object. SO it doent require definition to be substituted and data to be retrieved from the base objects.
    The indexes will come handy while populating the indexed view.
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Updating Database table across multiple SAP systems

    Dear All,
    I am working on a requirement which is described as follows:
    The requirement is to keep a database table in sync across 10 different SAP clients (for production, test systems etc.). So when the database table is modified in source SAP system, it has to be replicated across all the clients and table of other SAP systems.
    So the queries from my side are:
    1. Whether XI should be used here as a middleware or direct RFC calls can do the updation across the SAP systems?
    2. If XI is to be used what would be the recommended approach (ABAP Proxy to ABAP Proxy communication?)
    Hope you can recommend me the best options to achieve this.
    Thanks & Regards,
    Pratik

    it depends on what tables are involved/ what type of data/what transactions cause the update.
    If you know the table names - then database level replication may be an option u2013 many projects do refresh their QA system with production data for a very real test data. If not, a hard disk level mirroring may have to be considered.
    There are other technologies like change pointers in conjunction with distribution model can also be considered - which could trigger idocs that can be sent to the other systems using ALE layer or ALE *** PI/XI

Maybe you are looking for

  • Adobe ppd missing in indesign cs4

    hello, Adobe ppd missing in indesign cs4 print option, can anyone suggest wht to do.? attaching snapshot for reference..

  • Logic Pro 7 crashes on launch with brand new G5 dual 2.3

    I just unboxed my new G5 and did the transfer from my old G4 with the "target disk" mode (I believe that's what it was called). The first couple of times I tried to launch Logic it crashed during Au validation, now it crashed right away (Logic screen

  • Virus in OSX 10.5.6.?

    Hi, I've got a really situation on my OSX 10.5.6.-imac. Kind of strange symptoms, but bear with me: Was just browsing the web (www.bytbil.com, very serious site as far as i know) using Firefox 3.0.6 when suddently this the speakers started to blur ou

  • Allow Domain Users to Change Their Time On Workstation

    Is there a way to allow authenticated users on the domain to change their time on their workstations?  Ive added Domain Users, Domain Computers and Users to the Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/User Ri

  • Cannot download Lion Server

    Cannot download Lion Servererror Cannot Download server essentials. Can someone sort this please?