Query regarding Partition table Explain plan

Hello,
We are amidst a tuning activity, wherein a large table has been partitioned for better administration. During testing, I was analyzing the explain plans for long running sql's and found a piece that I was unable to understand. The PSTART and PSTOP columns show ROWID as its value, which in normal partition pruning scenario be the Partition number or the KEY. I tried to look around for this issue but did not get enough information. Can anybody help me of what it means? Also, if there is a good explanation of the same, it will be extremely helpful.
The snippet from explain plan looks like:
| Id  | Operation                                | Name                          | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     | Pstart| Pstop |
7 |        TABLE ACCESS BY GLOBAL INDEX ROWID| XXXXXXXXXXXXXXXXXXXX             | 43874 |  9083K|       |  1386   (1)| 00:00:17 | ROWID | ROWID |
On another similar query it looks like:
| Id  | Operation                             | Name                         | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     | Pstart| Pstop |
|   6 |     TABLE ACCESS BY GLOBAL INDEX ROWID| XXXXXXXXXXXXXX               | 22455 |  4648K|       |   456   (1)| 00:00:06 |     9 |     9 |
I have another query with regards to the Partition tables. Does it, require/benefit if, the Indexes to be in partitioned mode? I tried to read about it but did not get a conclusive evidence. I am trying to test it and post here the outcome, but if anybody has experience of working with it, it would be great to have some advice.
Oracle Version:- 10.2.0.4
Regards,
Purvesh.

Hi Purvesh.
Great explanation and example on this this topic...
Ask Tom "explain plan on range-partitioned table"
Hope this help.

Similar Messages

  • OIM - query regarding child tables

    Hi All
    I have a query regarding child tables. For example, when a user is removed from an AD group, his corresponding entry from the AD groups child table will be deleted. I want to know whether it is deleted of marked as deleted. Can I get the information later on that the user was removed from which AD group?
    Please help.
    Thanks

    You will have to enable the audit level = Resource Form and perform the additional tasks to track the process form data changes. This will track all modifications to the forms.
    -Kevin

  • Doubts regarding partition table.

    hi friends,
    i'm using oracle 10g (10.2.0.1) on windows server 2003
    i've a table, contains more than 2 million records, and it is range partition with quarterly by year.
    like values less than('01-05-2008')
    values less than('01-09-2008')
    selecting multiple partition in single query without union is not possible.
    so i fire the query like.
    select col1,col2,col3 from table where r_date between ('01-01-2008','25-06-2008');
    i would like to know that with this query, it will scan full table or it will scan only those two partitions...?
    thanks,

    i did that..
    when i fire the following query...
    select /*+ first_rows(1000) */ col1,col2,col3
    from table
    where r_date between to_date('01-01-2008','dd-mm-yyyy') and to_date('01-03-2008','dd-mm-yyyy');
    explain plan:
    SELECT STATEMENT, GOAL = HINT: FIRST_ROWS               11     1001     50050     640279     0     1     161
    PARTITION RANGE ITERATOR               11     1001     50050     640279     1     1     161
    TABLE ACCESS FULL     DBO     KEY_HISTORY_PART     11     1001     50050     640279     2     1     161
    it shows table access full and partition range iterator..
    because of that i'm asking..
    thanks..

  • Query to Partitioned Table

    I have two partition
    upto_mar_2011 , upto_jun_2011
    table_name : order
    1> if I run query as below
    Select * from order where order_date =to_date('23/03/2011','dd/mm/yyyy');
    Oracle will automatically search the data in Partition upto_mar_2011
    or it will search the data in whole table .
    2> Or I have to give query as below
    Select * from order partition (upto_mar_2011) where order_date =to_date('23/03/2011','dd/mm/yyyy');
    Is there any difference between this two query

    OraFighter wrote:
    Is it enough to write as below
    Select * from order where order_date = to_date('23/03/2011','dd/mm/yyyy')
    or order_date = to_date(('23/05/2011','dd/mm/yyyy');
    and CBO will search the data only the partition where it is available.
    Wheather it is span in one or two or three partition
    it will ignore all other partition automaticallyCorrect. It is called partition pruning. This is the approach you should use for application code. Applications should not be concerned with partitioning - should not need to know partition names and other physical attributes of the physical table it is using.
    You can also see partition pruning when looking at the execution plan of such a SQL statement.
    The only code that will deal with partition names and the physical aspects of the table, is maintenance code. For example, you need to maintain a sliding window of 32 days in the date ranged partitioned table. This code needs to determine which partitions are older than 32 days and drop them. And then add new partitions for future processing. This code deals with the physical layer and not the logical layer.
    It is important to keep the two apart and not mix physical stuff into the logical layer that the app is using. Mixing it means that changes to optimise performance and leverage new features cannot be made to the physical layer, as it will break the app layer code.

  • Question regarding using of Explain Plan

    Hi. I'm new with Oracle Queries so I have a little obstacles about understanding. I want to learn how to use Explain Plan feature from Oracle
    I am using Oracle 9i as back end .
    Please tell me how can i use feature of Explain Plan Feature for the below query.
    SELECT * FROM emp WHERE empno = 7369
    Thanks in advance.

    [email protected] wrote:
    Hi. I'm new with Oracle Queries so I have a little obstacles about understanding. I want to learn how to use Explain Plan feature from Oracle
    I am using Oracle 9i as back end .
    Please tell me how can i use feature of Explain Plan Feature for the below query.
    SELECT * FROM emp WHERE empno = 7369
    Kiran,
    Firstly , before anything else, I would suggest to change your handle to anything else and remove the email id from it. Its not good to have the id displayed in any public forum.
    About the question, unfortunately, its not that easy to answer. To understand explain plan and how to use it, you need to understand that algorithm/mechanism, whatever you feel like saying, that generates it. Because, explain plan is just the outcome of that mechanism, a final product, its the result of some inputs given by you in the form of your query, predicates, joins and their types and that all bring up the explain plan. Explain plan is basically the constitution of some steps which are used /fixed by optimizer to run the query. I would suggest that you read this page from cover to cover to understand some of the steps and their meanings which are shown to you in the plan. I am giving 10g link as this is a more better version of optimizer than the previous ones and I would suggest you to do experiments on 10g only.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/optimops.htm#i21299
    And I would suggest that you collect these following books and start reading them. I haven't yet found any thing better than these books.
    [Cost Based Oracle Fundamentals (Jonathan Lewis)|http://www.amazon.com/Cost-Based-Oracle-Fundamentals-Experts-Voice/dp/1590596366]
    [Troubleshooting Oracle Performance(Christian Antognini )|http://www.amazon.com/Troubleshooting-Oracle-Performance-Christian-Antognini/dp/1590599179/ref=sr_1_1?ie=UTF8&s=books&qid=1240078634&sr=1-1]
    [Effectuve Oracle By Design(Tom Kyte)|http://www.amazon.com/Effective-Oracle-Design-Osborne-ORACLE/dp/0072230657/ref=sr_1_1?ie=UTF8&s=books&qid=1240078698&sr=1-1]
    It would be real long journey before the mazes of optimizer and explain would be clear so make sure you have patience as well.
    HTH
    Aman....

  • Regarding partition table..pls help

    I am creating a table
    as
    CREATE TABLE T3
    PARTITION BY RANGE(CREATED)
    (PARTITION T1 VALUES LESS THAN (TO_DATE('01-APR-2006','DD-MON-YYYY')),
    PARTITION T2 VALUES LESS THAN (TO_DATE('01-JUN-2006','DD-MON-YYYY')))
    AS SELECT * FROM T1
    am getting error :
    ORA-14400: inserted partition key does not map to any partition
    since am new to the partitioning concepts, pls help.
    Thanks.

    Oups :-)
    I referenced the source table name (T1) instead on the newly partitionned table (T3) fromyour original post, sory :)
    The select should read:
    SELECT *
    FROM T3 PARTITION (T3);
    Thinking of that, you should give another name to the partition in order to avoid confusion!
    Yoann.

  • Regarding Partition Table:Spilt Partition

    Hi ,
         I have create one partition table. I did range partitioned on this .original table has 1035 Millions records.
         table has data from Jan 2008 to till May.I have create one partition of Jan-2008 to March 2009.
         Name is PS_INTRIMDETAIL_TILL_MAR2009 .This Partition has one table space
         Which has Five datafile of 20 GB.
         Next Onwards Partitions are Apr2009,May2009 this partitons are Monthwise.
         Now I want to split this PS_INTRIMDETAIL_TILL_MAR2009 partition on quaterly basis.
         Kindly suggest me how can I split this partiton.
         I also want to know the appropriate tablespace size for split partition.

    Hello,
    Here;s how you can split your partition by quartely
    ALTER TABLE TBLMEDRATINTRIM_DETAIL_ROAM_01
    SPLIT PARTITION PS_INTROAM_TILL_MAR2009 AT
    (TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    INTO (PARTITION PS_INTROAM_TILL_Q4
           TABLESPACE TABLESPACE TS_INTROAM_TILL_MAR2009
           PARTITION PS_INTROAM_TILL_MAR2009);
    ALTER TABLE KLONDIKE.TBLMEDRATINTRIM_DETAIL_ROAM_01
    SPLIT PARTITION PS_INTROAM_TILL_Q4 AT
    (TO_DATE(' 2008-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    INTO (PARTITION PS_INTROAM_TILL_Q3
           PARTITION PS_INTROAM_TILL_Q4);
    ALTER TABLE KLONDIKE.TBLMEDRATINTRIM_DETAIL_ROAM_01
    SPLIT PARTITION PS_INTROAM_TILL_Q3 AT
    (TO_DATE(' 2008-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    INTO (PARTITION PS_INTROAM_TILL_Q2
           PARTITION PS_INTROAM_TILL_Q3);
    ALTER TABLE TBLMEDRATINTRIM_DETAIL_ROAM_01
    SPLIT PARTITION PS_INTROAM_TILL_Q2 AT
    (TO_DATE(' 2008-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    INTO (PARTITION PS_INTROAM_TILL_Q1
           PARTITION PS_INTROAM_TILL_Q2);To compress old partitions;
    You can create one temp compressed for one quaretly partiton, you can repeat this process
    1. create table Q1_cmp tablespace <ts_name> compress as select * from TBLMEDRATINTRIM_DETAIL_ROAM_01 where CALLEND between to_date('20080101,'YYYYMMDD') and to_date('20080331','YYYYMMDD');
    2. Then exchange Q1 uncompressed partition with Q1_cmp
    ALTER TABLE TBLMEDRATINTRIM_DETAIL_ROAM_01
      EXCHANGE PARTITION PS_INTROAM_TILL_Q1
      WITH TABLE Q1_CMP
      EXCLUDING INDEXES
      WITHOUT VALIDATION;
    3. Then just rename partition back to original nameyou are in telecom and are you saving CDRs or MSUs, so tablespace size depends upon the volume. I suggest to go with the default value of 32 gig and I think it will grow upto 20 G
    create tablespace q1_ts datafile '/location/q1_ts/q1_tsdat01.dbf'  size 512M autoextend on next 256M maxsize unlimited.Hope this helps
    Regards

  • Query on partitioned table runs indefinitely

    Hi,
    Customer's Oracle GL implementation has tables GL_BALANCES and GL_JE_LINES partitioned on PERIOD_NAME i.e MON-YY.
    Both GL_BALANCES and GL_JE_LINES have LOCAL INDEXES.
    For GL_JE_LINES it is (PERIOD_NAME, CODE_COMBINATION_ID)
    For GL_BALANCES it is (PERIOD_NAME, CODE_COMBINATION_ID)
    We have had more than one occasion is our Production Instance when queries run indefinitely for hours when accessing rows via the above local indexes. We then gather stats using fnd_stats.gather_table_stats for the specific partition e.g. NOV-09 and immediately the queries complete once the stats gathering is in progress.
    I am really puzzled how gather stats helps in this case, when the query is already running and from tracing the SQL session shows usage of the LOCAL INDEX.
    Any pointers on what Gather Stats is doing would be great.
    We do gather stats regularly in our Production Instance.
    Also when the SQL query for example against GL_BALANCES for specific period is running for long, I checked the stats and the number of rows in the dba_tab_partitions is not much different from the physical count of records for that period.
    Sometimes we have noticed the TEMP space run out say even upto 48 GB.
    In one instance we saw huge number of direct path write temp wait events. After gather stats was done, we no more see this wait event. Note we never used SORT or GROUP BY when we saw the above wait event.
    Regards,
    Prince
    Edited by: prc_richard on 10/11/2009 15:16

    Presumably the optimizer was choosing a poor execution plan because the statistics (data volumes and distribution) were out of date, and gathering the stats enabled it to make some better decisions and arrive at a better execution plan.
    For example, it may have thought the newest partitions were empty (see num_rows in all_tab_partitions) when in fact they had been loaded with millions of rows since you last gathered stats.
    Edited by: William Robertson on Nov 11, 2009 12:16 AM

  • Query select 1 row Explain plan shows different no of rows

    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL> set autot on
    SQL> select session_id from dba_fga_audit_trail;
    SESSION_ID
         24001
    1 row selected.
    Elapsed: 00:00:00.00
    Execution Plan
    Plan hash value: 1613626607
    | Id  | Operation         | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |          | 41678 |   203K|   507   (1)| 00:00:07 |
    |   1 |  TABLE ACCESS FULL| FGA_LOG$ | 41678 |   203K|   507   (1)| 00:00:07 |
    ------------------------------------------------------------------------------In the above query it is selecting only one row
    but in E Plan it is showing 41678 rows selected.
    Am i wrong somewhere ?
    Regards
    Singh

    The number of rows processed to get your one record

  • Timestamp query in partitioned table - can this work?

    Hi,
    I have a table RANGE partitioned by a column named: CREATE_DATE (DATE). Its purpose is to manage the daily create/drop partitions of this table, I do not want to include this column in queries. I do not have an index on this column. We chose DATE for this column because we want to maintain a specific number of days in this table. And when we originally tried to use the STOP_TMSTMP column, TIMESTAMP proved to be unusable for RANGE partitioning.
    There are two other Timestamp columns that ARE used for precise transaction time calculation (STOP_TMSTMP - START_TMSTMP), and included within queries.
    I have an index on the STOP/START_TMSTMP but it is not getting used. And a table scan is occurring. So, finally my main question: How can I make the STOP_TIMESTAMP column index be used in queries against this table? And Is the CREATE_DATE required in a query, or can I safely ignore this column?
    Thanks,
    Mike

    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
    PL/SQL Release 10.2.0.3.0 - Production
    "CORE     10.2.0.3.0     Production"
    TNS for Solaris: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    Example query:
    select count(*)
    from flow_completion_record
    where stop_timestamp > '03-MAY-10 12.00.01.000000 AM'
    Takes 370 seconds and returns 2.7 million rows.
    Are you smarter than Oracle's optimizer?I will answer this rhetorical question with another question: does anyone really know what the optimizer will do? Or are you just best-guessing?
    Back to the original question: If I use the CREATE_DATE column to RANGE PARTITION this table, can I ignore it for queries in this table when it comes to TIMESTAMP?
    I really want to treat CREATE_DATE like I would an ID primary key column. Its value is set but I do not use it for queries.
    Thanks

  • Query regarding External tables

    DECLARE
    FileIn UTL_FILE.FILE_TYPE;
    v_sql VARCHAR2 (1000);
    BEGIN
    FileIn := UTL_FILE.FOPEN ('DIR_TEMP', 'test_file_out.txt', 'R');
    IF UTL_FILE.IS_OPEN(FileIn) THEN
    LOOP
    BEGIN
    UTL_FILE.GET_LINE (FileIn, v_sql);
    dbms_output.put_line(v_sql);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    EXIT;
    END;
    END LOOP;
    END IF;
    UTL_FILE.FCLOSE (FileIn);
    END;
    above mentioned is the procedure to read from a flat file.
    I would like to know the procedure to load flat file data into table using external tables:
    i have tried using this code but it displays errors:
    CREATE TABLE EXT_EMP
    ( 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))
    ORGANIZATION EXTERNAL (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY DIR_TEMP
    ACCESS PARAMETERS(
    RECORDS DELIMETED BY newline
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL(COMM NUMBER(7,2))
    LOCATION ('test_file_out.txt')
    PARALLEL
    REJECT LIMIT UNLIMITED;
    db: Oracle 11g , OS: windows vista

    the query works fine as table is created.
    but:
    select * from ext_emp;
    o/p: no rows.
    ext.bad :
    7369,SMITH,CLERK,7902,17-DEC-80,800,,20
    7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30
    7521,WARD,SALESMAN,7698,22-FEB-81,1250,500,30
    7566,JONES,MANAGER,7839,02-APR-81,2975,,20
    7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,1400,30
    7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30
    7782,CLARK,MANAGER,7839,09-JUN-81,2450,,10
    7788,SCOTT,ANALYST,7566,19-APR-87,3000,,20
    7839,KING,PRESIDENT,,17-NOV-81,5000,,10
    7844,TURNER,SALESMAN,7698,08-SEP-81,1500,0,30
    7876,ADAMS,CLERK,7788,23-MAY-87,1100,,20
    7900,JAMES,CLERK,7698,03-DEC-81,950,,30
    7902,FORD,ANALYST,7566,03-DEC-81,3000,,20
    7934,MILLER,CLERK,7782,23-JAN-82,1300,,10
    ext.log:
    LOG file opened at 04/01/09 02:13:13
    Field Definitions for table EXT_EMP
    Record format DELIMITED BY NEWLINE
    Data in file has same endianness as the platform
    Rows with all null fields are accepted
    Fields in Data Source:
    EMPNO Integer (4)
    Record position (+0, +4)
    Terminated by ","
    Trim whitespace same as SQL Loader
    ENAME CHAR (255)
    Terminated by ","
    Trim whitespace same as SQL Loader
    JOB CHAR (255)
    Terminated by ","
    Trim whitespace same as SQL Loader
    MGR Integer (4)
    Record position (+0, +4)
    Terminated by ","
    Trim whitespace same as SQL Loader
    HIREDATE CHAR (9)
    Date datatype DATE, date mask DD-MON-YY
    Terminated by ","
    Trim whitespace same as SQL Loader
    SAL Integer (4)
    Record position (+0, +4)
    Terminated by ","
    Trim whitespace same as SQL Loader
    COMM Integer (4)
    Record position (+0, +4)
    Terminated by ","
    Trim whitespace same as SQL Loader
    DEPTNO Integer (4)
    Record position (+0, +4)
    Terminated by ","
    Trim whitespace same as SQL Loader
    error processing column HIREDATE in row 1 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 2 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 3 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 4 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 5 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 6 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 7 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 8 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 9 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 10 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 11 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 12 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 13 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    error processing column HIREDATE in row 14 for datafile c:\temp\test_file_out.txt
    ORA-01858: a non-numeric character was found where a numeric was expected
    " I tried changing hiredate "dd-mm-yy" to hiredate "dd-mon-yy" but there is no difference.

  • Problem regarding partitioning tables

    hi all....good afternoon
    I have a table of huge number of records and thats why I want to do partitioning of that table.
    The column upon which I have to make the partition is of varchar2(7) type which contains the data in the format '2009APR', '2010JAN' etc etc..
    Now I have to fetch out the first 4 characters of the datas (i.e only the year) and then I can partition the table based on the years.
    How can I do that....plss help.
    The database is in 10g..
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1)
    );

    user12780416 wrote:
    hi all....good afternoon
    I have a table of huge number of records and thats why I want to do partitioning of that table.
    The column upon which I have to make the partition is of varchar2(7) type which contains the data in the format '2009APR', '2010JAN' etc etc..
    Now I have to fetch out the first 4 characters of the datas (i.e only the year) and then I can partition the table based on the years.
    How can I do that....plss help.
    The database is in 10g..
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1)
    );I suggest you instead of this varchar column with date column like dat.And use this column as partition key.For example.
    create table test123
    (name varchar2(10),
    age number,
    DOB varchar2(7),
    gender varchar2(1),
    dat date
    partition by  range (dat)
      partition part1 values LESS THAN (TO_DATE(' 2009-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part2 values LESS THAN (TO_DATE(' 2009-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part3 values LESS THAN (TO_DATE(' 2009-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part4 values LESS THAN (TO_DATE(' 2009-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
      partition part5 values LESS THAN (TO_DATE(' 2010-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
      )

  • Query regarding Standard table vs Z-table in SAP about deletion of data?

    Dear Experts,
    Can we delete the data form the standard table in SAP. If yes than will it ask for the request to make them effective itself, because when we delete the data from any ztable, it will not ask for the request to make them effective at the produstion server ?  If possible plz update me with yr elaborate and detailed concerneds.
    Regards,
    Akg

    Sorry to intervene here Dhina but that is just halfways correct.
    If delivery class NOT = C then it is NOT a customizing table and therefore you wont get any transport request updating or deleting data from it.
    But if it is a customizing table then you got to look for the recording routine. You can see this by viewing your table in SE11, then using the menu like following:
    utilities->table maintainance generator.
    Then look at the info in the bottowm frame. if "standard recording routine" is tagged, then you get a transport request.
    If the other option is tagged you wont get it. What again means you can customize this table directly in the system where you need those entries.
    why is that?
    well assume there is a customizing for e.G. materials, depending on materialnumber. If that table would have a standard recording routine you would need ALL your materials in your development system which would be quite unusual.
    Edited by: Florian Kemmer on Jun 9, 2011 2:00 PM
    some typos corrected, left some for sure

  • Query regarding HRP table updation in EHP4

    Hello Experts,
    Recently we have upgraded our system to EHP4 and we have done data migration of the E-Recruitment to Career Profile (eg. data migration from HRP9301 to HRP7402 infotype).
    The infotype HRP7402 has a field called TABNR at the last and there is an include provided where we have included 2 more essential fields.
    But when i am updating the HRP7402 (internal table has the correct data), this TABNR (length 32) is getting filled in the infotype automatically which is fine but it is having leading spaces because of which the remaining 5 characters are being moved the other 2 fields (the fields which are included in the include provided) after this field.
    The same TABNR is getting populated perfectly in other infotypes where it is the last field and there are no additonal enhancements done in the standard include provided.
    Please let me know on how can i resolve this problem of leading spaces which are automatically getting added up.  And I am not clear on where this TABNR is getting filled up in the FM. The following is the code snippet....
            CALL FUNCTION 'RH_INSERT_INFTY'
              EXPORTING
                fcode               = 'INSE'
                vtask               = 'D'
                order_flg           = 'X'
                commit_flg          = 'X'
                authy               = 'X'
                repid               = sy-repid
                form                = 'FILL_DATA'
              TABLES
                innnn               = it_p7402
    FORM fill_data TABLES ct_tabinfty_tab
      USING ct_infty TYPE any
            ct_tabix TYPE any.
      CLEAR ct_tabinfty_tab. REFRESH ct_tabinfty_tab.
      ct_tabinfty_tab = ' '.
      APPEND ct_tabinfty_tab.
    ENDFORM.  
    Thanks
    Raj Kishore

    Sorry to intervene here Dhina but that is just halfways correct.
    If delivery class NOT = C then it is NOT a customizing table and therefore you wont get any transport request updating or deleting data from it.
    But if it is a customizing table then you got to look for the recording routine. You can see this by viewing your table in SE11, then using the menu like following:
    utilities->table maintainance generator.
    Then look at the info in the bottowm frame. if "standard recording routine" is tagged, then you get a transport request.
    If the other option is tagged you wont get it. What again means you can customize this table directly in the system where you need those entries.
    why is that?
    well assume there is a customizing for e.G. materials, depending on materialnumber. If that table would have a standard recording routine you would need ALL your materials in your development system which would be quite unusual.
    Edited by: Florian Kemmer on Jun 9, 2011 2:00 PM
    some typos corrected, left some for sure

  • Explain plan change after partitioning - Bitmap conversion to rowid

    hi gurus,
    before partitioning the table using range paritioning,
    for the query,
    SELECT MEDIUMID
              FROM MEDIUM_TB
              WHERE CMREFERENCEID =8
               AND CONTENTTYPEID = 8
               AND CMSTATUSID = 5
               AND SUBTYPEID = 99
    A. before partitioning
    SELECT STATEMENT, GOAL = ALL_ROWS          2452     882     16758
    SORT ORDER BY               2452     882     16758
      TABLE ACCESS BY INDEX ROWID     DBA1     MEDIUM_TB     2451     882     16758
       BITMAP CONVERSION TO ROWIDS                         
        BITMAP AND                         
         BITMAP CONVERSION FROM ROWIDS                         
          INDEX RANGE SCAN      DBA1     MEDIUM_TB_IX07     242     94423     
         BITMAP CONVERSION FROM ROWIDS                         
          INDEX RANGE SCAN      DBA1     MEDIUM_TB_IX02     1973     94423     
    B. after partitioning
    the explain plan changed to
    SELECT STATEMENT, GOAL = ALL_ROWS          33601     796     15124
    TABLE ACCESS BY GLOBAL INDEX ROWID     DBA1     MEDIUM_TB     33601     796     15124
      INDEX RANGE SCAN     DBA1     MEDIUM_TB_IX07     300     116570     as you can see in the plan, the paln cost is very high after partitioning and the query is taking more time.
    index MEDIUM_TB_IX02 is not used in the second plan and also the plan method BITMAP CONVERSION.
    fyi, there is all the indexes are b-tree based and global indexes.
    what could be reason for the plan change?
    please help
    thanks,
    charles

    user570138 wrote:
    SELECT STATEMENT, GOAL = ALL_ROWS          2452     882     16758
    SORT ORDER BY               2452     882     16758
    TABLE ACCESS BY INDEX ROWID     DBA1     MEDIUM_TB     2451     882     16758
    BITMAP CONVERSION TO ROWIDS                         
    BITMAP AND                         
    BITMAP CONVERSION FROM ROWIDS                         
    INDEX RANGE SCAN      DBA1     MEDIUM_TB_IX07     242     94423     
    BITMAP CONVERSION FROM ROWIDS                         
    INDEX RANGE SCAN      DBA1     MEDIUM_TB_IX02     1973     94423     
    If you supplied proper execution plans we might be able to offer some advice.
    Use dbms_xplan.
    A list of the index definitions might also help
    Regards
    Jonathan Lewis

Maybe you are looking for