Oracle BI Reports not hitting table partition

Hi,
I have Fact Table 'F1' which is joined with Dim Table 'D1' on F1.Date1 = D1.Date1 Column. On Fact Table 'F1', we have partition on column "F1.Date1"
Partiton_Name Range
Jan10 - 01-Jan-2010 to 31-Jan-2010
Feb10 - 01-Feb-2010 to 28-Feb-2010
In Dim Table 'D1', I have Column "Month_Year" as well i.e., Month_Year ("Jan-2010", "Feb-2010").
Chart shows you data for multiple months (i.e., Jan-2010 - 1000000, Feb-2010 - 1500000) and I have navigate on column "Month_Year" to another report.
when i click on column "Month_Year" value i.e., Jan-2010 from report1 - Value "Jan-2010" goes a filter in another report (since i have given IS PROMPTED on second report).
Since I have partitioned on Column F1.Date, it goes for full scan (hitting all partitions exits in table 'F1'), I want to hit only 1 partion.
Please suggest.
Let me know in case of any clarification required.Thanks

I agree with your idea that partitioning for 40K rows (with the information you provided) seems excessive. Doing the math 40K rows * 218 partitions should come out to be only around 8M, which I would not immediately consider a candidate for partitioning.
There are benefits to partitioning that you're aware of; most of these involve the use of large data sets. Pruning is a huge benefit by excluding vast amounts of unwanted data from join consideration.
There are downsides too, mostly buried under the volume of data that partitions usually work with. There is a slight performance hit on standard queries against a partitioned table while SQL decides which partitions to hit. You can observe this by querying from the table, then by a specific partition when only trying to get data from a specific partition.
There is also the issue of how many partitions do you want to keep track of? You are asking good questions.
Its possible that the partitions are helping performance; the only way to make sure is to create a non-partitioned table using CTAS, index and constraint it like the partitioned table, and run some performance tests.

Similar Messages

  • Report not hitting pre seed cahe created using iBot by Admin

    Hi,
    We created an iBot to pre seed the cache using Administrator and it is creating the cache but when normal user run this particular report for the 1st time it's not hitting the cache(created using iBot). all the subsequest users request hitting the cache created by normal user. I still dont understand why it is not hitting the cache.
    Did anyone comeacross this issue before?
    what are the reasons not hitting cache with above scenario??
    does cache created by administrator using ibot work for other users? we actually running whole query with no filters on it using admin and normal users run the same report with some filters on it. as per oracle cache strategy it should work but it's not.
    any help appreciated.
    Thanks
    Jay.
    Edited by: Jay on May 16, 2012 7:23 PM
    Edited by: Jay on May 17, 2012 5:42 AM

    Hi Jay,
    I have given some inputs.
    The way the OBIEE server creates the SQL (both logical and physical) for a request can be a bit funky sometimes, the cache seeding only really works in fairly simple cases. Does your request have a pivot table in it by any chance? These are notorious for not caching properly, if you look at the log for the request you can see why as the server adds this strange "aggregate by" to the request (why this can't be done at the presentation level since the only change you are asling for is in the presentation of the content is beyond me). Those "aggregate by"s tend to stop a request being a cache hit unless it is identical to the one that seeded that cache, any change in parameters, columns etc (even if a logical subset) will not get a cache hit.
    2. "Oracle BI Server Cache" Cache Seeding option present in Destination tab of Delivers -- Please check this option.
    3. Caching is one of the many approaches to improve performance but it's not a magic solution. You need to understand that you can't cache everything. In particular you won't be able to cache reports that are driven by parameters and have facts that are too granular and exceed the number of rows each cache entry can have. If your fact is of a small size then you can get around the parameters issue by caching a report without any filters. The BI Server should able to derive subsequent queries as long as they meet the cache hit criteria. Have a look at the administration manual for all the rules a cache hit must meet.
    Hope it helps.
    Thanks,
    Satya

  • Report not hitting pre seed cache

    I have 40 reports which i am caching using i bots in a dashboard.The cache works good for the first 10 min which ever user logs in.After this times it is not hitting the cache and new cache entries are found in the cache files.I tried modifying the Instance config file adding the following parameters.Still i find the same issue.
    Is there any other parameters that i need to set which is causing this problem?
    <ServerInstance>
    <Cache>
    <Query>
    <MaxEntries>100</MaxEntries>
    <MaxExpireMinutes>60</MaxExpireMinutes>
    <MinExpireMinutes>10</MinExpireMinutes>
    <MinUserExpireMinutes>10</MinUserExpireMinutes>
    </Query>
    </Cache>
    <ServerInstance>

    Only thing I can think of is temp files running out of space? ( 'nQS_xxxx_x_xxxxxx.TMP' files which are stored by default in the \Temp folder stores the presentation server cache informatoin. )
    Thanks,
    -Amith.

  • Oracle 6i Report Not working

    Hi,
    I have a Oracle Apps - 6i Report works fine with one instance and the same report does not fetch any records in the other instance..
    Even its not printing the messages in the before report trigger, when i query from the backed it fetches records. This is really strange..
    Please any one help me on this.
    Thanks,
    Genoo

    It doesn't look like this has anything to do with Reports itself. You'd better ask this in the Oracle Apps forum.

  • Actual price of revenue in reporting not hitting

    Hello
    I have done the milestone billing and also created the billing plan in WBS element for the created milestone under the same WBS element as "down payments" and have done the billing for these amount by assigning in sales order by confirming the activity.but in the cost element report for revenue is still showing as planned revenue even after the billing is done and document is generated. even the delivery is also done. Is there any solutions for this
    Kindly so the needful
    Thanks and Regards
    Praveen B M

    you need to check two things:
    Billing type used in sales order whether it is a proforma invoice
    If billing genarates a accounting document, whether Values category 5A has been assigned

  • SSMA for Oracle 6.0 Cannot connect to Oracle DB reporting "table or view does not exist"

    SSMA For Oracle v6.0.0
    MS SQL Server Enterprise 64bits v11.0.3000.0
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    Symptom:
    when connecting Oracle, it reports error "Common Requirement: User does not have required permissions". Then it reports error: "Error occurred while collecting data."
    The following is log:
    [Generic: Mandatory] [1500/1] [2015-03-03 04:19:29]: SQL Server Migration Assistant for Oracle v6.0.0
    [Generic: Mandatory] [1500/1] [2015-03-03 04:19:29]: Starting assembly: SSMAforOracle, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    Created: 7/22/2014 4:42:22 PM
    Last Modified: 7/22/2014 4:42:22 PM
    OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
    OS architecture: x64
    Processor architecture: AMD64
    Current culture: en-US
    UI culture: en-US
    [Collector: Mandatory] [1500/4] [2015-03-03 04:20:04]: Oracle connection provider: OracleClient.
    [Collector: Mandatory] [1500/4] [2015-03-03 04:20:04]: Oracle connection mode: Standard.
    [Collector: Mandatory] [1500/4] [2015-03-03 04:20:06]: Oracle server version: '11.2.0.3.0'.
    [Gui: Error] [1500/4] [2015-03-03 04:20:12]: LowLevelAdapter.ReadSource : Read Source error: Microsoft.SSMA.Framework.Generic.Collectors.CollectorException: Error occurred while collecting data. ---> System.Data.OracleClient.OracleException: ORA-00942: table
    or view does not exist
       at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
       at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
       at System.Data.OracleClient.OracleCommand.ExecuteScalarInternal(Boolean needCLStype, Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
       at System.Data.OracleClient.OracleCommand.ExecuteScalar()
       at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbCommand.ExecuteScalar()
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.ExecuteScalarToInt(IDbConnection connection, String text)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.GetCountForExcludedSchemas(IDbConnection connection, IEnumerable`1 excludedSchemas, Int64 version)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CountObjects(IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, Set`1 excludedSchemas)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CollectDataIntoMetabase(XMetabase xMetabase, IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider
    stopOperationProvider, ICollectionContext context)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CreateMetabaseAndCollectData(IDbConnection connection, String xmlConnectionParameters, XNode xFilter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider stopOperationProvider,
    ICollectionContext context)
       --- End of inner exception stack trace ---
       at Microsoft.SSMA.Framework.Generic.Workspaces.Default.MetabaseWorkspaceItem.Connect(String connectionParameters, SecureString password)
       at Microsoft.SSMA.GUI.Product.OracleToMsSql.LowLevel.AppConnectToSourceOracle.ConnectToSourceStart(Object guiContext)
    [Gui: Error] [1500/4] [2015-03-03 04:20:12]: Exception: Error occurred while collecting data.
     site: Void Connect(System.String, System.Security.SecureString)
     source: Microsoft.SSMA.Framework.Generic.SSMAEnvironment
       at Microsoft.SSMA.Framework.Generic.Workspaces.Default.MetabaseWorkspaceItem.Connect(String connectionParameters, SecureString password)
       at Microsoft.SSMA.GUI.Product.OracleToMsSql.LowLevel.AppConnectToSourceOracle.ConnectToSourceStart(Object guiContext)
    [Gui: Error] [1500/4] [2015-03-03 04:20:12]: Inner Exception #1: ORA-00942: table or view does not exist
     site: Void CheckError(System.Data.OracleClient.OciErrorHandle, Int32)
     source: System.Data.OracleClient
     error code: -2146232008
       at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
       at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
       at System.Data.OracleClient.OracleCommand.ExecuteScalarInternal(Boolean needCLStype, Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
       at System.Data.OracleClient.OracleCommand.ExecuteScalar()
       at Microsoft.SSMA.Framework.Generic.DbUtilities.SsmaDbCommand.ExecuteScalar()
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.ExecuteScalarToInt(IDbConnection connection, String text)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.GetCountForExcludedSchemas(IDbConnection connection, IEnumerable`1 excludedSchemas, Int64 version)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CountObjects(IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, Set`1 excludedSchemas)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CollectDataIntoMetabase(XMetabase xMetabase, IDbConnection connection, Int64 serverVersion, OracleCollectionFilter filter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider
    stopOperationProvider, ICollectionContext context)
       at Microsoft.SSMA.Framework.Oracle.Collector.OracleObjectCollector.CreateMetabaseAndCollectData(IDbConnection connection, String xmlConnectionParameters, XNode xFilter, IUIProgressBarProvider progressBarProvider, IUIStopOperationProvider stopOperationProvider,
    ICollectionContext context)

    Hi Airings,
    'ORA-00942: table or view does not exist'
    According to the error message, it seems that the migrating table or view does not exist in the database, or SSMA does not have access to it. To troubleshoot the issue, please check the following things.
     1. Verify that if the spelling of the table or view name is correct.
     2. If the table or view exists but is in a different schema from the current schema where the SQL is executing (in other word, the table doesn’t own by you, but owned by other user), the ORA-00942 error will return too. Resolve this by
    explicitly reference the table or view by specifying the schema name (schema_name.table_name).
    3. SSMA queries some additional catalog tables that you may not have permission to, please make sure that you grant the account permission to
     read sys.mlog$. For more details, please review this similar thread:
    Bug in SSMA For Oracle 6.0 for non-dba Oracle user.
    Reference:
    ORA-00942 Table or View Does Not Exist Oracle Error
    Thanks,
    Lydia Zhang
    Lydia Zhang
    TechNet Community Support

  • Table Partitioning in Oracle 9i

    Hi all,
    I have a question on partitioning in Oracle 9i.
    I have a parent table with primary key A1 and attribute A2. A2 is not a primary key but I would to create partition for the table based on this attribute. I have a child table with attribute B1 being a foreign key to A1.
    I wish to perform a data purging on the parent and child table. I'll purge the parent table based on A2, but for the child table, it will be inefficient if I delete all records in child table where parent.A1 = child.B1. Should I add a new attribute A2 to the child table, partition the child table based on this attribute or is there a better way to do it?
    Thanks in advance for all replies.
    Cheers,
    Bernard

    Bernard
    Right 100K in the parent...but how many in the child ?
    I guess it comes back to what I said earlier...you can either take the hit on the cascaded delete to get out the records on the child table or you can denormalise the column down onto the child table in order to partition by it.
    I'm building a Data Warehouse currently and we're using the denormalise approach on a couple of tables in order to allow them to be equipartitioned and enable easier partition management and DML operations as you've indicated....but our tables have 100's of millions of rows in them so we really need to do that for manageability.
    100K records in the parent - provided the ratio to the child is not such that on average each deleted parent has 100's of children is probably not too onerous, especially for a monthly batch process - the question there would be how much time do you have to do this at the end of the month ? I'd probably suggest you set up a quick test and benchmark it with say 10K records as a representative sample (can do all 100K if you have time/space) - then assess that load/time against your month end window....if its reasonably quick then no need to compromise your design.
    You should also consider whether the 100K is going to remain consistent over time or is it going to grow rapidly in which that would sway you towards adding the denormalisation for partitioning approach at the outset.
    HTH
    Jeff

  • Automatic table partitioning in Oracle 11g

    Hi All,
    I need to implement automatic table partitioning in Oracle 11g version, but partitioning interval should be on daily basis(For every day).
    I was able to perform this for Monthly and Yearly but not on daily basis.
    create table part
    (a date)PARTITION BY RANGE (a)
    INTERVAL (NUMTOYMINTERVAL(1,'*MONTH*'))
    (partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
    Table created
    create table part
    (a date)PARTITION BY RANGE (a)
    INTERVAL (NUMTOYMINTERVAL(1,'*YEAR*'))
    (partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
    Table createdBut if i use DD or DAY instead of YEAR or MONTH it fails......Please suggest me how to perform this on daily basis.
    SQL>
      1  create table part
      2  (a date)PARTITION BY RANGE (a)
      3  INTERVAL (NUMTOYMINTERVAL(1,'*DAY*'))
      4  (partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
      5* )
    SQL> /
    INTERVAL (NUMTOYMINTERVAL(1,'DAY'))
    ERROR at line 3:
    ORA-14752: Interval expression is not a constant of the correct type
    SQL> create table part
    (a date)PARTITION BY RANGE (a)
    INTERVAL (NUMTOYMINTERVAL(1,'*DD*'))
    (partition p1 values less than (TO_DATE('01-NOV-2007','DD-MON-YYYY'))
    );  2    3    4    5
    INTERVAL (NUMTOYMINTERVAL(1,'DD'))
    ERROR at line 3:
    ORA-14752: Interval expression is not a constant of the correct typePlease suggest me to resolve this ORA-14752 error for using DAY or DD or HH24
    -Yasser

    Yes, for differenct partitions for different months.
    interval (numtoyminterval(1,'MONTH'))
    store in (TS1,TS2,TS3)
    This code will store data in partitions in tablespaces TS1, TS2, and TS3 in a round robin manner.
    for Day wise day yes you can store
    INTERVAL (NUMTODSINTERVAL(1,'day')) or
    INTERVAL (NUMTODSINTERVAL(2,'day')) or
    INTERVAL (NUMTODSINTERVAL(3,'day')) or
    INTERVAL (NUMTODSINTERVAL(4,'day')) or
    INTERVAL (NUMTODSINTERVAL(5,'day')) or
    INTERVAL (NUMTODSINTERVAL(n,'day'))

  • Table Partition on daily basis in oracle 10g

    I Want to create partition based on sysdate on daily basis.
    There will be 8 partitions. Every day data's will be get loaded into this table and everyday 8th day old data ill be get truncated.
    CREATE TABLE CUST_WALLET_BALANCE_7DAYS
    ( ID  VARCHAR2(250),
       A_DATE  VARCHAR2(11),
       LAST_PROCESS_DATE DATE,
      DD_OF_PROCESS_DATE  NUMBER(2),
      CONSTRAINT CUST_WALLET_BALANCE_7DAYS_PK PRIMARY KEY (ID,A_DATE))
      PARTITION BY RANGE (DD_OF_PROCESS_DATE)
      ( PARTITION DAY1 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE)),'DD')),
        PARTITION DAY2 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-1)),'DD')),
        PARTITION DAY3 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-2)),'DD')),
        PARTITION DAY4 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-3)),'DD')),
        PARTITION DAY5 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-4)),'DD')),
        PARTITION DAY6 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-5)),'DD')),
        PARTITION DAY7 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-6)),'DD')),
        PARTITION DAY8 VALUES LESS THAN (TO_NUBER(TO_CHAR(TRUNC(SYSDATE-7)),'DD'))
    THIS WONT WORKS OUT. SO PLEASE SUGGEST ME WITH BETTER SOLUTION.

    Original thread here: Table Partition on daily basis in oracle 10g
    Please do not start duplicate questions for the same topic.
    Locking this thread

  • Can we add a new column in report which is not in table.

    Hi All,
    Can we create a new column in report which is not in table.
    I have two columns in my table completion_date, manufacture_date. If the difference between the completion_date and manufacture_date is 0, -1, 1 then the new column of the report will say on time against each record or else will display late. Any suggestion how to proceed on this
    Regards
    Edited by: User_Apex on May 16, 2011 5:54 AM

    Standard report then, NOT an interactive report (which if you were using, you could build a computation and report on that)..
    Then the adding a column in the query would be your best best...
    Thank you,
    Tony Miller
    Webster, TX
    There are two kinds of pedestrians -- the quick and the dead.
    If this question is answered, please mark the thread as closed and assign points where earned..

  • I want to install OS X Mavericks on my MacBook Pro which is not with guid partition table

    i want to install OS X Mavericks on my MacBook Pro which had both mountain lion & windows 8.1, its not in GUID partition table format, so i couldnt install mavericks, so is there any way to change into GUID partition table format & install Mavericks  without losing Windows from my hard disk ?

    Open the App Store and upgrade iPhoto to the Mavericks version.
    iWork and iLife for Mac come free with every new Mac purchase. Existing users running Mavericks can update their apps for free from the Mac App Store℠. iWork and iLife for iOS are available for free from the App Store℠ for any new device running iOS 7, and are also available as free updates for existing users. GarageBand for Mac and iOS are free for all OS X Mavericks and iOS 7 users. Additional GarageBand instruments and sounds are available for a one-time in-app purchase of $4.99 for each platform.
    The iWork apps are free with a new iOS device since 1 SEP 2013. They are free with a new Mac since 1 OCT 2013. They are also free with the upgrade to OS X Mavericks 10.9 if you had the previous version installed when you upgraded.

  • Split Oracle 11g Table Partition and Insert new rows

    Hi,
    I have a doubt that i would like to be clarified. I need to split a partition of a table with more than 800 Million records, but at the same time (during the split operation) i need to insert new records (not in the partition that is being splited). Is there any problem/risk doing this? Is the insert ETL process going to fail ?
    Thanks in advance
    Greetings.
    Nuno
    Edited by: user13512889 on 1/Set/2011 3:25

    Hi Enrique,
    Thanks for posting in MSDN.
    Based on the description, you want to modify the formula for the A1 and B1 cell when you insert a new rows.
    Yes, we can use Worksheet.Change to dermin the change of data on the worksheet then we can modify the formula as we wanted. Here is a sample for your reference:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Range("A1").Formula = "=MAX($A2:$A" & Me.UsedRange.Rows.Count & ")"
    Me.Range("B1").Formula = "=MIN($B2:$B" & Me.UsedRange.Rows.Count & ")"
    End Sub
    You can more detail about Excel VBA developing from link below:
    Getting Started with VBA in Excel 2010
    Welcome to the Excel 2013 developer reference
    Regards & Fei
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Partition pruning not working for partitioned table joins

    Hi,
    We are joining  4 partitioned tables on partition column & other key columns. And we are filtering the driving table on partition key. But explain plan is showing that all tables except the driving table are not partition pruning and scanning all partitions.Is there any limitation that filter condition cannot be dynamic?
    Thanks a lot in advance.
    Here are the details...
    SELECT a.pay_prd_id,
                  a.a_id,
                  a.a_evnt_no
      FROM b,
                c,
                a,
                d
    WHERE  (    a.pay_prd_id = b.pay_prd_id ---partition range all
                AND a.a_evnt_no  = b.b_evnt_no
                AND a.a_id       = b.b_id
       AND (    a.pay_prd_id = c.pay_prd_id---partition range all
            AND a.a_evnt_no  = c.c_evnt_no
            AND a.a_id       = c.c_id
       AND (    a.pay_prd_id = d.pay_prd_id---partition range all
            AND a.a_evnt_no  = d.d_evnt_no
            AND a.a_id       = d.d_id
       AND (a.pay_prd_id =  ---partition range single
               CASE '201202'
                  WHEN 'YYYYMM'
                     THEN (SELECT min(pay_prd_id)
                                      FROM pay_prd
                                     WHERE pay_prd_stat_cd = 2)
                  ELSE TO_NUMBER ('201202', '999999')
               END
    DDLs.
    create table pay_prd
    pay_prd_id number(6),
    pay_prd_stat_cd integer,
    pay_prd_stat_desc varchar2(20),
    a_last_upd_dt DATE
    insert into pay_prd
    select 201202,2,'OPEN',sysdate from dual
    union all
    select 201201,1,'CLOSE',sysdate from dual
    union all
    select 201112,1,'CLOSE',sysdate from dual
    union all
    select 201111,1,'CLOSE',sysdate from dual
    union all
    select 201110,1,'CLOSE',sysdate from dual
    union all
    select 201109,1,'CLOSE',sysdate from dual
    CREATE TABLE A
    (PAY_PRD_ID    NUMBER(6) NOT NULL,
    A_ID        NUMBER(9) NOT NULL,
    A_EVNT_NO    NUMBER(3) NOT NULL,
    A_DAYS        NUMBER(3),
    A_LAST_UPD_DT    DATE
    PARTITION BY RANGE (PAY_PRD_ID)
    INTERVAL( 1)
      PARTITION A_0001 VALUES LESS THAN (201504)
    ENABLE ROW MOVEMENT;
    ALTER TABLE A ADD CONSTRAINT A_PK PRIMARY KEY (PAY_PRD_ID,A_ID,A_EVNT_NO) USING INDEX LOCAL;
    insert into a
    select 201202,1111,1,65,sysdate from dual
    union all
    select 201202,1111,2,75,sysdate from dual
    union all
    select 201202,1111,3,85,sysdate from dual
    union all
    select 201202,1111,4,95,sysdate from dual
    CREATE TABLE B
    (PAY_PRD_ID    NUMBER(6) NOT NULL,
    B_ID        NUMBER(9) NOT NULL,
    B_EVNT_NO    NUMBER(3) NOT NULL,
    B_DAYS        NUMBER(3),
    B_LAST_UPD_DT    DATE
    PARTITION BY RANGE (PAY_PRD_ID)
    INTERVAL( 1)
      PARTITION B_0001 VALUES LESS THAN (201504)
    ENABLE ROW MOVEMENT;
    ALTER TABLE B ADD CONSTRAINT B_PK PRIMARY KEY (PAY_PRD_ID,B_ID,B_EVNT_NO) USING INDEX LOCAL;
    insert into b
    select 201202,1111,1,15,sysdate from dual
    union all
    select 201202,1111,2,25,sysdate from dual
    union all
    select 201202,1111,3,35,sysdate from dual
    union all
    select 201202,1111,4,45,sysdate from dual
    CREATE TABLE C
    (PAY_PRD_ID    NUMBER(6) NOT NULL,
    C_ID        NUMBER(9) NOT NULL,
    C_EVNT_NO    NUMBER(3) NOT NULL,
    C_DAYS        NUMBER(3),
    C_LAST_UPD_DT    DATE
    PARTITION BY RANGE (PAY_PRD_ID)
    INTERVAL( 1)
      PARTITION C_0001 VALUES LESS THAN (201504)
    ENABLE ROW MOVEMENT;
    ALTER TABLE C ADD CONSTRAINT C_PK PRIMARY KEY (PAY_PRD_ID,C_ID,C_EVNT_NO) USING INDEX LOCAL;
    insert into c
    select 201202,1111,1,33,sysdate from dual
    union all
    select 201202,1111,2,44,sysdate from dual
    union all
    select 201202,1111,3,55,sysdate from dual
    union all
    select 201202,1111,4,66,sysdate from dual
    CREATE TABLE D
    (PAY_PRD_ID    NUMBER(6) NOT NULL,
    D_ID        NUMBER(9) NOT NULL,
    D_EVNT_NO    NUMBER(3) NOT NULL,
    D_DAYS        NUMBER(3),
    D_LAST_UPD_DT    DATE
    PARTITION BY RANGE (PAY_PRD_ID)
    INTERVAL( 1)
      PARTITION D_0001 VALUES LESS THAN (201504)
    ENABLE ROW MOVEMENT;
    ALTER TABLE D ADD CONSTRAINT D_PK PRIMARY KEY (PAY_PRD_ID,D_ID,D_EVNT_NO) USING INDEX LOCAL;
    insert into c
    select 201202,1111,1,33,sysdate from dual
    union all
    select 201202,1111,2,44,sysdate from dual
    union all
    select 201202,1111,3,55,sysdate from dual
    union all
    select 201202,1111,4,66,sysdate from dual

    Below query generated from Business Objects and submitted to Database (the case statement is generated by BO). Cant we use Case/Subquery/Decode etc for the partitioned column? We are assuming that  the case causing the issue to not to dynamic partition elimination on the other joined partitioned tables (TAB_B_RPT, TAB_C_RPT).
    SELECT TAB_D_RPT.acvy_amt,
           TAB_A_RPT.itnt_typ_desc,
           TAB_A_RPT.ls_typ_desc,
           TAB_A_RPT.evnt_no,
           TAB_C_RPT.pay_prd_id,
           TAB_B_RPT.id,
           TAB_A_RPT.to_mdfy,
           TAB_A_RPT.stat_desc
      FROM TAB_D_RPT,
           TAB_C_RPT fee_rpt,
           TAB_C_RPT,
           TAB_A_RPT,
           TAB_B_RPT
    WHERE (TAB_B_RPT.id = TAB_A_RPT.id)
       AND (    TAB_A_RPT.pay_prd_id = TAB_D_RPT.pay_prd_id -- expecting Partition Range Single, but doing Partition Range ALL
            AND TAB_A_RPT.evnt_no    = TAB_D_RPT.evnt_no
            AND TAB_A_RPT.id         = TAB_D_RPT.id
       AND (    TAB_A_RPT.pay_prd_id = TAB_C_RPT.pay_prd_id -- expecting Partition Range Single, but doing Partition Range ALL
            AND TAB_A_RPT.evnt_no    = TAB_C_RPT.evnt_no
            AND TAB_A_RPT.id         = TAB_C_RPT.id
       AND (    TAB_A_RPT.pay_prd_id = fee_rpt.pay_prd_id -- expecting Partition Range Single
            AND TAB_A_RPT.evnt_no    = fee_rpt.evnt_no
            AND TAB_A_RPT.id         = fee_rpt.id
       AND (TAB_A_RPT.rwnd_ind = 'N')
       AND (TAB_A_RPT.pay_prd_id =
               CASE '201202'
                  WHEN 'YYYYMM'
                     THEN (SELECT DISTINCT pay_prd.pay_prd_id
                                      FROM pay_prd
                                     WHERE pay_prd.stat_cd = 2)
                  ELSE TO_NUMBER ('201202', '999999')
               END
    And its explain plan is...
    Plan
    SELECT STATEMENT ALL_ROWS Cost: 79 K Bytes: 641 M Cardinality: 3 M
    18 HASH JOIN Cost: 79 K Bytes: 641 M Cardinality: 3 M
    3 PART JOIN FILTER CREATE SYS.:BF0000 Cost: 7 K Bytes: 72 M Cardinality: 3 M
    2 PARTITION RANGE ALL Cost: 7 K Bytes: 72 M Cardinality: 3 M Partition #: 3 Partitions accessed #1 - #1048575
    1 TABLE ACCESS FULL TABLE TAB_D_RPT Cost: 7 K Bytes: 72 M Cardinality: 3 M Partition #: 3 Partitions accessed #1 - #1048575
    17 HASH JOIN Cost: 57 K Bytes: 182 M Cardinality: 874 K
    14 PART JOIN FILTER CREATE SYS.:BF0001 Cost: 38 K Bytes: 87 M Cardinality: 914 K
    13 HASH JOIN Cost: 38 K Bytes: 87 M Cardinality: 914 K
    6 PART JOIN FILTER CREATE SYS.:BF0002 Cost: 8 K Bytes: 17 M Cardinality: 939 K
    5 PARTITION RANGE ALL Cost: 8 K Bytes: 17 M Cardinality: 939 K Partition #: 9 Partitions accessed #1 - #1048575
    4 TABLE ACCESS FULL TABLE TAB_C_RPT Cost: 8 K Bytes: 17 M Cardinality: 939 K Partition #: 9 Partitions accessed #1 - #1048575
    12 HASH JOIN Cost: 24 K Bytes: 74 M Cardinality: 957 K
    7 INDEX FAST FULL SCAN INDEX (UNIQUE) TAB_B_RPT_PK Cost: 675 Bytes: 10 M Cardinality: 941 K
    11 PARTITION RANGE SINGLE Cost: 18 K Bytes: 65 M Cardinality: 970 K Partition #: 13 Partitions accessed #KEY(AP)
    10 TABLE ACCESS FULL TABLE TAB_A_RPT Cost: 18 K Bytes: 65 M Cardinality: 970 K Partition #: 13 Partitions accessed #KEY(AP)
    9 HASH UNIQUE Cost: 4 Bytes: 14 Cardinality: 2
    8 TABLE ACCESS FULL TABLE PAY_PRD Cost: 3 Bytes: 14 Cardinality: 2
    16 PARTITION RANGE JOIN-FILTER Cost: 8 K Bytes: 106 M Cardinality: 939 K Partition #: 17 Partitions accessed #:BF0001
    15 TABLE ACCESS FULL TABLE TAB_C_RPT Cost: 8 K Bytes: 106 M Cardinality: 939 K Partition #: 17 Partitions accessed #:BF0001
    Thanks Again.

  • Introduction of Oracle Table Partitions into PeopleSoft HRMS environment

    I would like to pose a general question and see if anyone has found any published advice / suggestions from PeopleSoft or Oracle on this. I believe that Oracle table partitioning isn't supported through the PeopleTools application designer functionality. Most likely this is done for platform independence. However, we were thinking about implementing table partitioning for performance and the ability to refresh test instances with subsets worth of data instead of the entire database.
    I know that this would be a substantial effort, but was wondering if anyone had any documentation on this type of implemention. I've read some articles from David Kurtz on the subject, and it sounds like these were all custom jobs for each individual client. Was looking for something more generic on this practice from PeopleSoft or Oracle...
    Regards,
    Jay

    Thanks for the article Nicolas. I will add that to my collection, good reference piece.
    I think you gasped the gist of the query, which was I know that putting partitioning into a PeopleSoft application is going to be highly specific to the client and application that you are running. But what I looking for was something like a baseline guide for implementing partitioning in a PeopleSoft application as a whole.
    In other words, something like notifiaction that the application designer panels would be affected since they don't have the ability to manage partitions. Therefore, any changes to tables that would utilize partitioning would need to be maintained at the database level and no longer utilize the DDL generated from PeopleTools Application Designer. Other consideration would be, like maybe a list of tables that would be candidates for partitioning based on the application, in my case HRMS. And maybe, suggestions on what column should be used for partitioning, etc...All of which are touched on in your identified article about putting partitioning in at the database level for a generic application.
    Thanks for your help, it is much appreciated...
    Jay

  • Oracle Clinical Reports - Ouput not generated

    Hi,
    When i try to run reports within Oracle Clinical it runs as "Success" as per Batch Jobs window.
    I have run it using destype=FILE and desname=<reports_output_path>
    The "View Log" also opens the log, but when trying to "View Output" it gives the following message in the explorer window:
    File <reports_output_path>\o489.pdf does not exist
    When i view the Report details in Report Queue Manager it shows the following error:
    Terminated with Error :
    Caught exception: exception oracle.reports.RWException { oracle.reports.RWError[] errorChain={struct oracle.reports.RWError { int errorCode=56093, java.lang.String errorString="Cached output for job 23 is no longer valid", java.lang.String moduleName="REP" }} }
    The Report is being generated sometimes as a PDF file in the "Cache" directory of reports server, but the output directory doesnt contain any pdf file.
    Any ideas folks?
    Best regards,

    Hi,
    Thank you for the response.
    1. This happens with all output types...I guess PDF Plugin is installed as it is generating a PDF in the Reports Cache Directory that is D:\oracle\9iDS\reports\cache
    2. RXCPROD has been NOT been given Local Administrator rights. But it is a member of "Power users" group.
    Does running a report in any way depend on the RXCPROD account...i thought it was just for running PSUB?
    Any further ideas?
    Best regards

Maybe you are looking for

  • Tried everything, but "Secured link to iTunes Store failed"

    Hi all, I so hope you can help! I can't connect to the iTunes Store, which also means I can't do any Home Sharing (this being my ultimate goal in solving my problem). I've got Windows 7 home edition, 64-bit, and the newest iTunes. Running diagnostics

  • Using GIF images in iMovie11 ??

    Admittedly this is now my first attempt at using the iMovie8/9/11 editing structure since I was perfectly satisfied with iMovie06 HD and that timeline approach. In the old program I had GIF formatted images (Maps) that I had available in my "Photos"

  • Policy Issue

    Hi I have a normal user policy apply at the OU level to restrict some desktop setting like accessing control panel, changing wallpaper, and so for, and the OU container has 10 users which get the normal user policy applying onto their desktop everyti

  • RMAN design

    Hello again, Just another question related to the default RMAN control file repository OR a separated RMAN recovery catalog. I have multiple databases running on the same hosts or on different hosts. Do you recommend setting one centralized RMAN reco

  • RH8 Hyperlink GUI not working on external links

    Weird one, only on one of our machines! Clicking OK in the Hyperlink window does nothing if an external project file is selected (fine for an internal file). Entering the link manually is fine (works in Preview and output). However, the problem remai