List partitioning multi-org tables

Hi
I am doing list partitioning on receivables multi-org tables on org_id column. Running into a performance problem with multi org views. The multi-org views for receivables tables are defined like below with a nvl condition on org_id (partitioned column) in their where clause
create or replace ra_customer_trx
select select * from ra_customer_trx_all
WHERE NVL(ORG_ID,NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV ('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV ('CLIENT_INFO'),1,10))),-99)) = NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV ('CLIENT_INFO'),1,1), ' ', NULL, SUBSTRB(USERENV ('CLIENT_INFO'),1,10))),-99)
Queries against the view are doing all partition scan when I exptected partition pruning to kick in and the query goes only against the spefific partition.
select count(1) from ra_customer_trx ---- does all partition scan
select count(1) from ra_customer_trx_all where org_id = <> ---- does single partition scan, works well.
When I recreate the view with out any function calls on the org_id column partition pruning happens.
In a non partitioned environment which has an index on org_id column, both the above sqls use the index and yield same result.
So my questions are -
1. Is there a way to get around this problem without having to modify the oracle supplied multi-org views? Any options I can supply in the partition script?
2. In a non-partitioned env, with an index on org_id how is the optmizer able to go against the index and where as it is not able to in partitioned environment..? Both these envs has the same view definition with NVL(org.......) consition.
Does anyone have any suggestions?
Thank you.

user2317378 wrote:
1. Is there a way to get around this problem without having to modify the oracle supplied multi-org views? Any options I can supply in the partition script?You mean to say that the expression used in the view belongs to some Oracle supplied schema, like APPS? Or is this a view you've created yourself?
Can you show us the output of EXPLAIN PLAN using DBMS_XPLAN.DISPLAY when querying the view? Use the \ tag before and after to use proper formatting in fixed font.
Please make sure that the "Predicate Information" section below the plan is also included in your post. If it is missing your plan table is old and needs to be upgraded using $ORACLE_HOME/rdbms/admin/utlxplan.sql or dropped if you're in 10g which provides a system wide PLAN_TABLE.
2. In a non-partitioned env, with an index on org_id how is the optmizer able to go against the index and where as it is not able to in partitioned environment..? Both these envs has the same view definition with NVL(org.......) consition.
These are two different questions. One is about partition pruning not taking place, the other one about an index not being used.
Can you show us the output of EXPLAIN PLAN using DBMS_XPLAN.DISPLAY when querying the unpartitioned example? Use the \ tag before and after to use proper formatting in fixed font.
Please make sure that the "Predicate Information" section below the plan is also included in your post. If it is missing your plan table is old and needs to be upgraded using $ORACLE_HOME/rdbms/admin/utlxplan.sql or dropped if you're in 10g which provides a system wide PLAN_TABLE.
It would be interesting to know how Oracle can use the index given the complex expression in the WHERE clause.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/

Similar Messages

  • Multi-org Tables & Views in R12

    We r in the process of upgrading Oracle Applications from 11i to R12. Now my question is
    1. What about the Multi Org related tables once we get upgraded to R12 since the Multi Org choice is provided at the form level itself in R12.
    2. Do the views related to Multi Org still exists in R12. If yes then what is purpose of the same.
    Thanks in advance
    Regards
    -Mahesh

    Anybody who hav Noticed the differences in Multi Org tables and Views in Database Level b/w ii1 and R12 plz answer this.
    Regards
    -Mahesh

  • Reports 2.5 / Multi Org?

    A Partner asked the following question:
    "I have been designing custom reports for a client using Reports 2.5 which are then implemented in Oracle Financials. The client has now moved to a Multi Org environment. What do I need to do to my reports to get them working with Multi Org?"
    This does not sound like a Reports question, per se. Does anybody have experience with this and can offer suggestions? Thanks.

    Oracle Financials requires the user environment to be set.
    Add the following calls into the Before & After report triggers.
    Before Report Trigger
    SRW.USER_EXIT('FND SRWINIT');
    After Report Trigger
    SRW.USER_EXIT('FND SRWEXIT');
    Also all select statements should use the multi org tables (_ALL) eg po_headers_all.

  • Multi Org Reports

    I am developing reports in Developer 2000, Reports 2.5 that are implemented in Oracle Financials. We have moved to a Multi Org environment, as a result I can no longer see any data in reports that use views. What steps need to be taken to correct this. This is of high priority. Thanks in advance for your help.
    null

    Oracle Financials requires the user environment to be set.
    Add the following calls into the Before & After report triggers.
    Before Report Trigger
    SRW.USER_EXIT('FND SRWINIT');
    After Report Trigger
    SRW.USER_EXIT('FND SRWEXIT');
    Also all select statements should use the multi org tables (_ALL) eg po_headers_all.

  • HASH PARTITION TO LIST PARTITION

    version : Oracle 10g
    hi All,
          i have a table partitioned by hash(8 segments) with 200 millions records . now we want to move to list partition the same table by state.
          Is there a way to drop hash Partitions with out losing the data, and Add list partition.
        

    No, you can't "convert" the Hash Partitions to List Partitions.
    You have to create a new, empty, table that is List Partitioned and then move the data over to the new table.
    You could use Direct Path Insert (i.e. INSERT with APPEND Hint) with PARALLEL degree and NOLOGGING on the target table to speed up the copy.
    You could also use DBMS_REDEFINITION to migrate the data.
    In either case, you also have to create the Indexes on the new table.
    Hemant K Chitale

  • Domain index on list-partitioned table?

    Hi,
    I have a list-partitioned table, and wanted to create a partitioned Oracle Text index on it. I keep getting an error, and am now wondering if it's possible to do. Here is my syntax:
    CREATE INDEX SCHEMA1.IDX_ALL_TEXT_LOCAL ON SCHEMA1.TABLE1(ALL_TEXT)
    INDEXTYPE IS CTXSYS.CONTEXT
    LOCAL
    (PARTITION PTN1 PARAMETERS('sync (on commit) storage ptn1'),
    PARTITION PTN2 PARAMETERS('sync (on commit) storage ptn2'),
    PARTITION PTN3 PARAMETERS('sync (on commit) storage ptn3'),
    PARTITION PTN4 PARAMETERS('sync (on commit) storage ptn4'),
    PARTITION PTN5 PARAMETERS('sync (on commit) storage ptn5'),
    PARTITION PTN6 PARAMETERS('sync (on commit) storage ptn6'),
    PARTITION PTN7 PARAMETERS('sync (on commit) storage ptn7'),
    PARTITION PTN8 PARAMETERS('sync (on commit) storage ptn8')
    PARAMETERS('section group my_group lexer new_lexer');
    ERROR at line 1:
    ORA-29850: invalid option for creation of domain indexes
    Any advice would be much appreciated.
    Thanks,
    Nora

    ... will it spread the index across the tablespaces that are associated with each partition?No, as demonstrated below.
    SCOTT@orcl_11gR2> CREATE TABLE table1
      2       ( id         NUMBER(6),
      3         all_text      VARCHAR2 (20)
      4       )
      5  PARTITION BY LIST (id)
      6   (PARTITION ptn1 VALUES (2,4) TABLESPACE example,
      7    PARTITION ptn2 VALUES (3,9) TABLESPACE example
      8   )
      9  /
    Table created.
    SCOTT@orcl_11gR2> INSERT ALL
      2  INTO table1 VALUES (2, 'test2')
      3  INTO table1 VALUES (3, 'test3')
      4  INTO table1 VALUES (4, 'test4')
      5  INTO table1 VALUES (9, 'test9')
      6  SELECT * FROM DUAL
      7  /
    4 rows created.
    SCOTT@orcl_11gR2> CREATE INDEX IDX_ALL_TEXT_LOCAL
      2  ON TABLE1 (ALL_TEXT)
      3  INDEXTYPE IS CTXSYS.CONTEXT
      4  /
    Index created.
    SCOTT@orcl_11gR2> SELECT table_name, tablespace_name
      2  FROM   user_tab_partitions
      3  WHERE  table_name = 'TABLE1'
      4  /
    TABLE_NAME                     TABLESPACE_NAME
    TABLE1                         EXAMPLE
    TABLE1                         EXAMPLE
    2 rows selected.
    SCOTT@orcl_11gR2> SELECT table_name, tablespace_name
      2  FROM   user_tables
      3  WHERE  table_name LIKE '%IDX_ALL_TEXT_LOCAL%'
      4  /
    TABLE_NAME                     TABLESPACE_NAME
    DR$IDX_ALL_TEXT_LOCAL$I        USERS
    DR$IDX_ALL_TEXT_LOCAL$R        USERS
    DR$IDX_ALL_TEXT_LOCAL$N
    DR$IDX_ALL_TEXT_LOCAL$K
    4 rows selected.
    SCOTT@orcl_11gR2>

  • Binding arraylist, list, or multi-dimensional array to table in web dynpro

    Greetings,
    I like to ask if anyone knows how to bind data from an arraylist, list, or multi-dimensional array list to a table in web dynpro, your help is much appreciated.
    Thanks in advance.
    Cory

    Is there a way to create or cast a multi-dimensional
    array from a Collection or Vector ?
    ArrayList list = new ArrayList();
    list.add( new Object[4] );
    Object[] array2 = list.toArray(); // is only
    single dimension !
    Of course it is a single dimension array.
    Check the definition of the toArray() function, and the specification of arrays in general.
    toArray() returns a one dimensional array.
    In your case it will return an array of arrays. So array2[0] will be an array of 4 objects.
    That just happens to be a 2 dimensional array though you may (I haven't checked it) need some parentheses to call the elements.
    Try Object o = array2[0][1]; and if that doesn't work Object o = (array2[0])[1];

  • Order Entry -Price Lists - Multi-Org Installation - Security

    Oracle Order Entry Technical Forum
    Hi,
    Ours is a multi_org installation in ver 11.0.3. We have 7 organizations. Each organizations has its own Price lists. Each organisation does not want other organizations to view their price lists. As any responsibility who has access to price lists can view all the price lists on the system Can somebody guide me how to achieve the above?
    null

    Oracle Order Entry is Multi-Org enabled. Can't you define responsibilities for each operating unit, and then link each responsibility to an operating unit using the profile option MO: Operating Unit (I believe this is the correct profile option. If not, there is one that you can use to perform this funtion.)
    Once you do this, I believe that you can then effectively define a price list for each operating unit. Also, users will only be able to view and/or modify their own price lists.
    Please let me know what the real solution is if this doesn't help.
    Regards,
    Roger

  • Custom code for Multi-org - Use x_all tables or views with set_client_info?

    Trying to determine what is normal for custom sql and plsql within 11i. I am trying to find out what other 11i installations are using in regards to custom code. Are you using the all tables or using the views utilizing setclient_info. Any feedback would be appreciated.
    Note: We have converted to multi-org and are setup as a single organization.
    Thanks, Ira

    Hi,
    Using views or table are depend upon the requirement of clinets and implementation.
    If one need to access multiple tables, its always good to have a view and access that... else its same to access view or table...
    Thanks
    Yogi

  • ESYU: R12 - Order Management를 위한 Multi Org Access Control(MOAC) setup 방법

    Purpose
    Oracle Order Management - Version: 12.0 to 12.0
    Information in this document applies to any platform.
    R12의 Order Management에 대핸 Multi Org Access Control(MOAC) setup 방법에 대해 알아본다.
    Solution
    일반적인 MOAC Setup:
    1. HRMS에서 Security Profile을 정의:
    a. HRMS Management responsibility 선택
    b. HRMS Manager> Security> Profile로 이동
    c. Security Profile이 정의되어 있는지 확인 (OM responsibility 혹은 Site level로)
    d. 만일 아직 setup 되어져 있지 않다면 Operating Units를 입력
    e. 저장
    Note: 만일 위 d step과 같이 새로운 security profile을 생성하였다면 concurrent program 'Security List Maintenance'를 꼭 실행해야 한다.
    그렇지 않으면 multiple operating units가 OM forms의 LOV에 나타나지 않을 것이다.
    이 program은 multi-org access를 validating 하기 위해 사용하는 table에 data를 생성한다.
    Navigation: HRMS Management> HRMS Manager> Processes & Reports> Submit Process & Report> Security List Maintenance
    2. MO Profile Options setup:
    a. MO: Security Profile - 이 profile setting은 MOAC functionality를 활성화 한다.
    b. MO: Default Operating Unit - 이 Operating Unit는 OM forms과 report에서 default가 될 것이며, 이를 clear 하거나 변경하기 위해 LOV를 사용할 수 있다.
    Keep the MO profiles in sync:
    MO: Security Profile은 site와 responsibility level로 setting 할 수 있다.
    MO: Default Operating Unit은 site, responsibility, user level로 setting 할 수 있다.
    Application이 원하는대로 동작되지 않는것을 발견하면 이 profile options의 setting 값을 확인한다.
    3. OM setup:
    R12 upgrade 시 OM Profile에서 migrate 된 새로운 OM System Parameters를 확인:
    Order Management Super User> Setup> System Parameters> Values
    (See <<NOTE 393646.1>>-R12 Readiness Cheat Sheet: Migrated OM Profile Options)
    4. Form에서 hidden field 'Operatin Unit'를 활성화시키고 default folder로 저장:
    Sales Order and Order Organizer forms
    Quick Sales order and Organizer forms
    Sales Agreement forms
    Pricing and Availability form
    Other forms
    Note: Sales Order form에서 hidden field 'Operating Unit'를 'Show' 하기 전에 fotm안에 이 field를 위한 공간을 만들어 놓아야 한다.
    예를 들면 Customer Number field를 짧게 하거나 Operating Unit field로 이 field를 덮어씌울수 있다.
    Reference
    Note 393634.1

    Hi Larry,
    Have you considered adding the exec apps.mo_global.set_policy_context call to your connection's start-up script?
    Tools -> Preferences -> Database -> Filename for connection startup scriptNot the most flexible approach, so I'm not sure if it is appropriate for your application, but just a thought. You might create distinct connection names with different start-up scripts for each org_id.
    Regards,
    Gary
    SQL Developer Team

  • Partition an existing table

    How can I partition an existing table? What's the SQL syntax?
    Thanks for help,
    Chen Zhao

    Does anybody know how to partition an existing table?
    YES! That is the simple answer to your question. There are a lot of people that know how to do that.
    Whether partitioning is appropriate and, if so, which method might be 'best' for YOU depends on the particulars of your use case. But as with most problems you need to make sure you troubleshoot whatever issue you have in the proper order:
    1. Identify a PROBLEM or issue that needs to be resolved - you haven't told us anything. Please post info about this
    2. Validate that the problem/issue actually exists (it could just be a fluke occurence)
    3. Identify potential solutions to the problem/issue - that list of solutions may, or may not, include partitioning
    4. Select a small number (e.g. 1 or 2) of those solutions for further analysis and actual tests.
    5. Select the 'best' (based on your orgs criteria) of those tested solutions for implemention
    You seem to already be on step #5. But in order for us to help you we have to understand what the results of steps 1 thru 4 are.
    Please post the information about your PROBLEM that we need to help you.

  • Discoverer Reports does not work in Multi-org Environment after R12 Upgrade

    Discoverer Reports does not work in Multi-org Environment after R12 Upgrade. Created a simple report using the below query:
    SELECT po_header_id, segment1, type_lookup_code
    FROM po_headers
    WHERE segment1 = '5000002'
    Query works perfectly fine; when i set the ORG_CONTEXT in the database using the command:
    EXEC mo_global.set_policy_context('S',129)
    But the report doesn't fetch any data when ran from an Org based responsibility. We've ensured that the MO: Operting Unit is set accurately and general Oracle reports (PLSQL Program OR XML Publisher) are working perfectly fine.
    ===========
    I followed the steps provided in Metalink Note: 732826.1 - It works for some responsibilities where the MO: Security Profile is not set; but fails for those responsibilities where the MO: Security Profile is set.
    I am looking for specific solution that works irrespective of either the MO: Operating Unit profile is set of not.
    Please suggest. Appreciate your response.
    Thanks,
    Kesava Chunduri

    Hi Hussein,
    Thanks for the quick response.
    Yes, I've gone thru both the notes specified below:
    Discoverer Workbooks Based On Organization Enabled Views Are Not Populated [ID 1293438.1]
    - Tried this option; but this option is messing up a couple of Oracle Standard Functionalities.
    - For ex: If i set this profile option; we are not able to create any receipts using Custom Responsibilities.
    I am able to create the receipt, when i remove this profile option.
    No Data Shows for Reports in Discoverer 10g with Applications Release 12 [ID 1054380.1]
    - I see that the products i am running these reports from AR/GL - already exists in these tables.
    Anything other options??
    Thanks,
    Kesava

  • How to make use of a list partition key in an IR?

    Hi all -- wondering if anyone has any thoughts on the following:
    I have a table like this:
    CREATE TABLE protocol (
    ptl_id INTEGER,
    ptl_name VARCHAR2(100),
    and this table is LIST partitioned on the key value PTL_ID. (There are many reasons for this need which I won't go into).
    My question is, queries that use this table in Interactive Reports I have always have the PTL_ID in them, but it's never a displayed column, it's always hidden (as it's a meaningless surrogate key, not to display to the user). However the default IR behavior, when filtering, won't use it, it will use PTL_NAME (if filtering on a particular PROTOCOL).
    What can I do to make the IR use the list partition key PTL_ID instead of PTL_NAME, even though PTL_ID is hidden and PTL_NAME is displayed? I'd get MUCH better performance if I could get it to query via the list partition key.
    Any thoughts??
    Thanks!
    David

    Users can change the name of the protocol at will, so that is not an option. Switching the partitioning is not an option either, as the PTL_ID's/partitions get pre-created during scheduled maintenance, and there is no tolerance to downtime to create a new partition for every new protocol as they are needed.
    Each partition is put in a separate tablespace as there is a need to archive off protocols once they are done.
    So I'm back to the original question still. My guess is the answer involves a bunch coding work arounds, not something native in the IRs. I figured I'd ask.
    Thanks
    David

  • Multi Org Access Problem in Oracle Alerts

    Hi All,
    I created one Alert for sending an email through Oracle Alert, after sending the mail I need to update one column in the table to indicate that alert has been sent for this particular row.
    Alert is sending mail correctly but it goes to update statement it throws following error:
    PL/SQL procedure successfully completed.
    BEGIN MO_GLOBAL.SET_ORG_ACCESS(0, null,'M'); END;
    ERROR at line 1:
    ORA-20001: APP-FND-02901: You do not have access privilege to any operating
    unit. Please check if your profile option MO: Security Profile includes any
    operating unit or the profile option MO: Operating Unit is set.
    ORA-06512: at "APPS.APP_EXCEPTION", line 72
    ORA-06512: at "APPS.MO_GLOBAL", line 638
    ORA-06512: at line 1
    APP-ALR-04020: Oracle Alert was unable to execute "&VALUE". Check that this file exists and that its read protection is set correctly.
    both the profiles MO: Security Profile, MO: Operating Unit are alredy set but still I'm getting error.
    My alert's update is simple update stement on custom table, Please guide.
    Thanks in advance.
    Regards,
    Reetesh Sharma

    Hi Reetesh ;
    What is your OS and EBS level?
    please check below Notes:
    APP-FND-02901 error when trying to open OM Forms [ID 887512.1]
    Convert to Multi-Org: Oracle error 20001:ORA-20001:Error occured during product initialization for MO [ID 413031.1]
    XLAACCPB - Create Accounting Program fails with Oracle error -20001: ORA-20001: APP-FND-02901: You do not have access privilege to any operating unit [ID 753824.1]
    When Running Concurrent Programs Get Oracle error -20001: ORA-20001: APP-FND-02901, Why? [ID 1061434.1]
    Accessing Responsibilities after Applying Patchset Gives Ora-20001 on MO:Security Profile [ID 199842.1]
    Hope it helps
    Regard
    Helios

  • Spatial Index on list partition?

    Wondering if anyone has created a spatial index on a table that has a list partition. Documentation says only a range partition is supported.
    Also, when creating the partition, has anyone created the partitions in parallel? i.e. hohup a gang of jobs that work on each partition.

    Hi Steven,
    Oracle spatial partitioned indexing does not support list partitions.
    Also, parallel spatial indexing is supported as of Oracle 9iR2, but the
    parallelism implemented for partitioned indexing is partition-at-a-time
    parallelism, i.e. partition 1 is indexed in parallel, then partition 2, etc.
    Also implemented in 9iR2 is exchange partition, which allows you to
    build the partitions for each index separately in parallel, then exchange
    them in with very high index availability.
    Hope this helps,
    Dan

Maybe you are looking for

  • [SOLVED] Cannot boot with linux-3.5.3

    Edit: Solved, as explained here. Hello, after upgrading to linux-3.5.3-1 my boot stopped at :: running early hook [udev] I tried upgrading to grub-bios-2.00, removing any customization I had in modprobe.conf and /etc/modules-load.d as well as removin

  • IE problem with video

    Figured out how to encode video and add a skin, published (ftpd) all, but video does not show up in IE (skin does). I've goen thru all of the IE security settings, nothing seems to jog this BUT the videos with skins show up fine in foxfire and opera.

  • Sometimes when I unlock my 5s using the fingerprint scanner it takes a blank picture!

    I'm a bit puzzled by this one, but one occassioin when I'm using the fingerprint scanner to perform an unlock from the phone being asleep, it will snap a picture of the black screen and save it in the photos.  I hear the shutter sound and that's how

  • I have an Ipod Nano 3g I can't put music on..

    Hey guys.. I've had an Ipod Nano for, I think, about 5 months now. I however havent managed to put any music on it yet... I can't get Itunes installed, it seems like my Apple Software Update program is causing all of this. I've tried everything to in

  • ACL-list syntax error in PIX after upgrade, need urgent help!

    Hello everyone We have a setup including Cisco ACS + a VPN 3005 Concentrator and a PIX 515E (7.2.4) We upgraded the PIX version from 7.0 to 7.2.4 and suddenly our downloadable access-list was getting refused when users authenticated against the ACS.