Plan Stabilty or Stored Outlines

Hey does anyone have the definitive guide on using outlines with queries from forms?
Who has actually done this and had it work?
What did you do, how did you capture the sql (exactly) and how did you get the form session to use it?
Thanks;
Pete

Yeah... I've been in that position before.
It might be easier to prove to the vendor that the hint would improve their application's response time by multitudes, but if your vendor is like most, they will say thank you and then they will say that the will turn it over to their development team and perhaps, maybe, if your are lucky, they will include it in a future release.
I have been lucky a couple times and had vendors that actually let me make the change, but not very often.
What other ideas do you have?
Can you perhaps create a public synonym that points to a view you create with the nestloop hint? Maybe if you are lucky, the vendor did not explicitly call their view using proper syntax of <owner>.<object_name>. I found most vendors don't do that, so if you create your own view, and then use a public synonym of the same name (to point to your own view), then the application code might use it instead. Might be worth testing...
I think it might work.

Similar Messages

  • Need steps to capture a particular explain plan using the store outlines

    Hi,
    I have got the needed explain plan using hints in my query. I need to capture it using stored outlines.
    I am using Oracle 10.2.0.3.
    Can someone provide me the steps to capture this plan using an Stored Outline?I dont want to use any other method.
    Thanks,
    Sach

    I have got the needed explain plan using hints in my query. I need to capture it using stored outlines.Do you mean creating outline?
    Can someone provide me the steps to capture this plan using an Stored Outline?I dont want to use any other method?[http://www.oracle-base.com/articles/misc/Outlines.php]
    [http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_6005.htm]
    Edited by: Anantha on Apr 2, 2009 9:07 AM

  • Stored Outlines on 10g as was on 9i

    Hi everyone,
    I built lots of stored outlines in 9i for our production database. The interface to do that by then was the java client/server enterprise manager.
    When I upgraded to 10g the only outlines I could find was the sql advisor from the web enterprise manager, but it do not let me customize the plans the way I did on 9i.
    I found out to be a packaged called dbms_sqltune, I wasn't able to do much with that package its kinda a way complex and less pratical.
    How do I create a stored outlines on 10g?
    Many will ask why to force a execution plan as the optimizer is very good? Well, in my experience sometimes the optimizer just don't know "business rules" enought to find the best execution plan for a report, he can guess on the cardinality of the columns but he can't guess that if a report is build to sales dept. then they will only use the 1000 and 1005 contracts on 99% of the cases that will represent a very small part of a huge table. To complete the scenario, many vendors do not open the code for us to "hint" their queries, so stored outlines was the way to go on those (many on my case) cases.
    Thanks in advance for comments!
    Ricardo Rodriguez

    Ricardo,
    Allow me to say a few words as I read your question just now.
    Stored outlines will do exactly what you mentioned.Stored outlines are used to make sure that optimizer wont go for another plan from what you had opted.That's the basic goal in making and conceptulating outlines.The same concept is also there in 11g with Sql Plan Baselines.Therefore, stored outlines and SQL plan baselines are used to:
    - ensure that a given execution plan is always used
    - do SQL tuning without changing the code of the application
    Stored outlines are indeed there in 10g.Please see this line here for 10gR2,
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/outlines.htm#sthref1341
    Now in the EM,there is no option(atleast I havenot seen one) to create them as the idea to use stored outlines never really got so popular.I agree those who use it,they like it very much but on a generic part, they were actualy a problem.Too many restrictions are there to implement and use them.
    In 10g, this funcionality seems to be missing, you cannot 'hand made' a exection plan for the query anymore, you could just click on the advice of the sql advisor and pray to him find an solution.
    In 10g the concept is enhanced a step further.Its always a bad idea to "hard-code" a plan for optimizer taking away its decision making sense.So Oracle is promoting for the same reasons which were there for outlines i.e. the query is a part of vendor application,you don't want to chance n number of parameters to tune one query only,they formulated stored profiles to do the job which does the same job but doesn't hard code the plan.SQL profiles are designed to provide to the query optimizer the information like:
    - execution environment (e.g. optimizer mode)
    - object statistics
    - corrections related to the estimations performed by the query optimizer
    As you can see, the aim of a SQL profile is "only" to change the environment in which the query optimizer works. The idea is that by changing the environment the query optimizer should be able to generated a more efficient execution plan.
    I guess you would be clear with the part now.I wont even sya that outlines store the plan itself.Stored outlines, SQL plan baselines and SQL profile do not plans. They store hints which can be used to make up a plan.Yes the option in 10g from GUI is to just create Stored Profiles but not Stored Outlines which stands as a manualy done task.
    Just my 2 cents on the topic.
    Aman....

  • Stored outlines & plan stability

    I am trying to use stored outlines, for plan stability (Oracle 8i).
    Oracle documents says that; the query from my
    application must literally match to the one
    in stored outline (OL$ table). Does that mean
    that the parameter value(s) also should
    match ??
    Example: The following query was stored
    in OL$ table, thru stored outlines procedure.
    select cust_name, sum(revenue)
    from accounts
    where country_code = '225'
    and account_type = 'C'
    group by cust_name;
    Now my question: Is it necessary that my application should throw exact same query,
    including parameter values (i.e.country_code)
    to take advantage of the store outline ?
    If I pass country_code = '436', does it make use of the stored outline or not ?
    Any input is highly appreciated, since this option is very useful in my application
    context.
    thanks and regards
    subbu

    The stored outline need not take the same parameter values .we can give different parameter values.In your case if country_code = '436', it makes use of stored outline.

  • How much performance is impacted if the Stored outline is used globally?

    Hi,
    One of the queries that we are having problem with and we are trying to use the Stored outline so that we freeze the execution plan. The vendor is telling us that it should set globally (ALTER SYSTEM not SESSION) , but we disagreed because this would have negative effect on our db performance. We ask to enable session only iusing LOGON trigger filtered by program/username nstead of system like below
    Vendor preference: ALTER SYSTEM SET CREATE_STORED_OUTLINES=TRUE
    We prefer: ALTER SESSION SET CREATE_STORED_OUTLINES=TRUE
    BTW, we are on HP UX 10.2.0.3. Any recommendations or suggestions would be greatly appreciated. Thank you so much.
    Rich.

    No Oracle version number.
    No information as to the vendor or the product.
    No information indicating why a stored outline might be of value in one or many cases.
    And most importantly ... no evidence of testing to see if it really makes things better or worse.
    Throw this into a test environment and validate your prejudices. There is no way we can possibly
    know and there are no general rules when it comes to tuning other than the fact that only testing
    on your hardware with your system has value.

  • Do stored outlines work in Oracle 10.2.0.3?

    I am using 10.2.0.3 on HP UNIX 11i. I set cursor_sharing=force.
    I created a stored outline using:
    alter session set create_stored_outlines='CUSTOM';
    my sql_statement;
    When I run the sql statement and verify in v$sql whether outline was used by looking at outline_category and yes outline is used.
    But then I run dbms_stat on an underlying table and run my sql again, my plan has changed which means outline was not used. This is really baffling, if outline was used,
    Plan should be same as what was produced when creating outline. Something is
    Definitely wrong.

    After spending whole day, I narrowed down the proble. Stored outlines in 10.2.0.3
    do not work anymore whith cursor_sharing=force. They, however, they work with
    cusror_sharing=similar and cirsor_sahring=exact.

  • Oracle not using the stored outline

    SQL> create table emp as select * from sys.emp;
    Table created.
    SQL> alter session set create_stored_outlines = TRUE;
    Session altered.
    SQL> create outline emp_dept for category scott_outlines on select empno from emp where ename = 'SCOTT';
    Outline created.
    SQL> set autot on exp
    SQL> select empno from emp where ename = 'SCOTT';
    EMPNO
    7788
    Execution Plan
    Plan hash value: 3956160932
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 20 | 2 (0)| 00:00:01 |
    |* 1 | TABLE ACCESS FULL| EMP | 1 | 20 | 2 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    1 - filter("ENAME"='SCOTT')
    Note
    - dynamic sampling used for this statement (level=2)
    SQL> create unique index i on emp(ename);
    Index created.
    SQL> select empno from emp where ename = 'SCOTT';
    EMPNO
    7788
    Execution Plan
    Plan hash value: 3262377121
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
    |
    | 0 | SELECT STATEMENT | | 1 | 20 | 1 (0)| 00:00:
    01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 20 | 1 (0)| 00:00:
    01 |
    |* 2 | INDEX UNIQUE SCAN | I | 1 | | 0 (0)| 00:00:
    01 |
    Predicate Information (identified by operation id):
    2 - access("ENAME"='SCOTT')
    SQL> alter session set use_stored_outlines = SCOTT_OUTLIN
    2 ;
    Session altered.
    SQL> alter session set use_stored_outlines = SCOTT_OUTLINS
    2 ;
    Session altered.
    SQL> select empno from emp where ename = 'SCOTT';
    EMPNO
    7788
    Execution Plan
    Plan hash value: 3262377121
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
    |
    | 0 | SELECT STATEMENT | | 1 | 20 | 1 (0)| 00:00:
    01 |
    | 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 20 | 1 (0)| 00:00:
    01 |
    |* 2 | INDEX UNIQUE SCAN | I | 1 | | 0 (0)| 00:00:
    01 |
    Predicate Information (identified by operation id):
    2 - access("ENAME"='SCOTT')
    Note
    - outline "SYS_OUTLINE_11050409142489113" used for this statement
    SQL> SELECT name, category, used FROM user_outlines;
    NAME CATEGORY USED
    EMP_DEPT SCOTT_OUTLINES UNUSED
    SYS_OUTLINE_11050408594412502 DEFAULT USED
    SYS_OUTLINE_11050408591781301 DEFAULT UNUSED
    SYS_OUTLINE_11050408594415603 DEFAULT UNUSED
    SYS_OUTLINE_11050408595648404 DEFAULT UNUSED
    SYS_OUTLINE_11050409003554705 DEFAULT UNUSED
    SYS_OUTLINE_11050409030340606 DEFAULT UNUSED
    7 rows selected.
    Execution Plan
    Plan hash value: 1195863419
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti
    me |
    | 0 | SELECT STATEMENT | | 1 | 81 | 2 (0)| 00
    :00:01 |
    | 1 | NESTED LOOPS | | | | |
    |
    | 2 | NESTED LOOPS | | 1 | 81 | 2 (0)| 00
    :00:01 |
    | 3 | TABLE ACCESS FULL | OL$ | 1 | 64 | 2 (0)| 00
    :00:01 |
    |* 4 | INDEX UNIQUE SCAN | I_USER1 | 1 | | 0 (0)| 00
    :00:01 |
    |* 5 | TABLE ACCESS BY INDEX ROWID| USER$ | 1 | 17 | 0 (0)| 00
    :00:01 |
    Predicate Information (identified by operation id):
    4 - access("CREATOR"="U"."NAME")
    5 - filter("U"."USER#"=USERENV('SCHEMAID'))
    Note
    - outline "SYS_OUTLINE_11050409030340606" used for this statement
    SQL>
    Note : I have dropped all default outlines in dba_outlines but they are being created automatically.(Why)
    Please give me good article to understand more on stored outlines.

    Please post your 4 digits Oracle version.
    It looks like that Oracle has only 1 stored outline for the SQL statement and that the second execution plan with the index has replaced the first outline (execution plan with full table scan).
    Here is a good article on stored outlines http://www.oracle-base.com/articles/misc/Outlines.php (except that the used Oracle version is also missing).
    Here is a short demo based on your demo that I have modified (note that I disabled stored outlines just after creating the first one):
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    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> drop table emp purge;
    Table dropped.
    SQL> drop outline emp_dept;
    Outline dropped.
    SQL> whenever sqlerror exit failure;
    SQL> --
    SQL> create table emp as
      2  select object_name ename, object_id empno
      3  from all_objects
      4  where object_id < 5000;
    Table created.
    SQL> --
    SQL> alter session set create_stored_outlines = TRUE;
    Session altered.
    SQL> create outline emp_dept for category scott_outlines on
    select empno from emp where ename = 'SCOTT';
    Outline created.
    SQL> set autot on exp
    SQL> select empno from emp where ename = 'SCOTT';
    no rows selected
    Execution Plan
    Plan hash value: 3956160932
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |     1 |    30 |     5   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| EMP  |     1 |    30 |     5   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("ENAME"='SCOTT')
    Note
       - dynamic sampling used for this statement
    SQL> -- disable stored outline creation
    SQL> alter session set create_stored_outlines = FALSE;
    Session altered.
    SQL> create index i on emp(ename);
    Index created.
    SQL> select empno from emp where ename = 'SCOTT';
    no rows selected
    Execution Plan
    Plan hash value: 4079916893
    | Id  | Operation                   | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |      |     1 |    30 |     1   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| EMP  |     1 |    30 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | I    |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("ENAME"='SCOTT')
    Note
       - dynamic sampling used for this statement
    SQL> -- use stored outlines
    SQL> alter session set use_stored_outlines = SCOTT_OUTLINES;
    Session altered.
    SQL> select empno from emp where ename = 'SCOTT';
    no rows selected
    Execution Plan
    Plan hash value: 3956160932
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |      |    10 |   300 |     5   (0)| 00:00:01 |
    |*  1 |  TABLE ACCESS FULL| EMP  |    10 |   300 |     5   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - filter("ENAME"='SCOTT')
    Note
       - outline "EMP_DEPT" used for this statement
    SQL> -- do not use stored outlines
    SQL> alter session set use_stored_outlines=false;
    Session altered.
    SQL> select empno from emp where ename = 'SCOTT';
    no rows selected
    Execution Plan
    Plan hash value: 4079916893
    | Id  | Operation                   | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |      |     1 |    30 |     1   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| EMP  |     1 |    30 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | I    |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("ENAME"='SCOTT')
    Note
       - dynamic sampling used for this statementEdited by: P. Forstmann on 4 mai 2011 13:34

  • Performance Tuning Issues: UNION and Stored Outlines

    Hi,
    I have two questions,
    Firstly I have read this:
    http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14211/sql_1016.htm#i35699
    What I can understand is using UNION ALL is better than UNION.
    The ALL in UNION ALL is logically valid because of this exclusivity. It allows the plan to be carried out without an expensive sort to rule out duplicate rows for the two halves of the query.
    Can someone explain me the following sentences.
    Secondly my Oracle Database 10g is on FIRST_ROWS_1, how can stored outlines help in reducing I/O cost and response time in general?Please explain.
    Thank you,
    Adith

    Union ALL and Union
    SQL> select 1, 2 from dual
    union
    select 1, 2 from dual;
    | Id | Operation | Name | Rows | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 2 | 6 (67)| 00:00:01 |
    | 1 | SORT UNIQUE | | 2 | 6 (67)| 00:00:01 |
    | 2 | UNION-ALL | | | | |
    | 3 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
    | 4 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
    11 rows selected.
    SQL>select 1, 2 from dual
    union all
    select 1, 2 from dual;
    | Id | Operation | Name | Rows | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 2 | 4 (50)| 00:00:01 |
    | 1 | UNION-ALL | | | | |
    | 2 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
    | 3 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
    10 rows selected.
    Adith

  • Parallel query hint with stored outlines

    Hi,
    Can I use parallel query hint with stored outlines.
    Regards
    MMU

    I'm not quite sure what you're asking, since stored outlines themselves implement hints to try to maintain plan stability.
    If you're asking if stored outlines will utililze the parallel query hints I'd have to assume "yes" but would test the idea anyway.
    Message was edited by:
    riedelme

  • Use Stored Outlines to replace ANALYZE  with "do nothing" ?

    Has anyone used Stored Outlines to replace statements like "ANALYZE TABLE abc COMPUTE STATISTICS" ?
    Say you have an application that issues a number of 'ANALYZE TABLE' statements at different times during a batch run and you want some of the ANALYZE calls to succeed (eg for tables 'stu' and 'xyz') but others to "do nothing" (eg for table 'abc').
    Could you replace "ANALYZE TABLE abc COMPUTE STATISTICS" with a (for example) "select 'x' from dual" call ?

    Hemant K Chitale wrote:
    Has anyone used Stored Outlines to replace statements like "ANALYZE TABLE abc COMPUTE STATISTICS" ?
    Say you have an application that issues a number of 'ANALYZE TABLE' statements at different times during a batch run and you want some of the ANALYZE calls to succeed (eg for tables 'stu' and 'xyz') but others to "do nothing" (eg for table 'abc').
    Could you replace "ANALYZE TABLE abc COMPUTE STATISTICS" with a (for example) "select 'x' from dual" call ?
    If i understood it right, you seem to mean query rewrite.
    As you know already, stored outline is a series of hints to guide optimizer to emulate previous plan.
    It cannot be used to replace query text itself.
    Advanced query rewrite(10g) seems to be promising, but it can only be used for select statement.
    Dion Cho
    PS) Rewriting query is very powerful, but very dangerous both for performance and security.
    That is maybe the reason why Oracle does not provide those kinds of functionality.

  • Stored Outlines & Restore Table Stats

    Hi all,
    I would like to know how restoring of table stats change execution plans when stored outlines are in place?
    DB version is 10.2.0.4.
    NAME                                 TYPE                             VALUE
    optimizer_dynamic_sampling           integer                          0
    optimizer_features_enable            string                           10.2.0.4
    optimizer_index_caching              integer                          0
    optimizer_index_cost_adj             integer                          65
    optimizer_mode                       string                           FIRST_ROWS_10
    optimizer_secure_view_merging        boolean                          TRUE
    query_rewrite_enabled                string                           TRUE
    star_transformation_enabled          string                           FALSE
    Following actions were done last month:
    1. dbms_stats.gather_table_stats(schema IMANAGE, Table DIT_TRUSTEE)
    2. dbms_stats.lock_table_stats(schema IMANAGE, Table DIT_TRUSTEE)
    3. Once the desired execution plan for Query 1 (e.g. sql_id=ah8nzqhyu7xh4) was in V$SQL and was used by query, I created a Stored Outline using DBMS_OUTLN.create_outline, and enabled outline by setting use_stored_outlines to the desired outline category.
    4. Every thing remained fine for almost 30-35 days
    Today, there was another query (e.g. sql_id=7anr84k12d5rt, using same DIT_TRUSTEE table) whose  query plan got changed. This query didn't have any stored outline in place and was performing without any problem earlier. So, I gathered stats for the same table (DIT_TRUSTEE) after unlocking its stats. It didn't help. So, I thought to restore old stats against which query used to perform better while also rebuilt some indexes. After the restore of table stats (DIT_TRUSTEE) to a date which was earlier than the date of creation of 1st stored outline, the execution plan of query 1 (e.g. sql_id=ah8nzqhyu7xh4) got changed. Can we know the reason why it got changed? I was under the impression that any change in stats doesn't impact the execution plan if stored outline is in place for a query. But it looked like this wasn't the case.
    It would be good if someone can explain or share their experiences.
    regards,
    Anjum

    Hi,
    The query against SQL_ID=ah8nzqhyu7xh4 is:
    SELECT imanage.DIT_TRUSTEE.CREATED_TIME, imanage.DIT_TRUSTEE.DIT_CLASS, imanage.DIT_TRUSTEE.DOES_PASSWORD_EXPIRE, imanage.DIT_TRUSTEE.DOMAIN, imanage.DIT_TRUSTEE.FORCE_PASSWORD_CHANGE, imanage.DIT_TRUSTEE.HOME_LIBRARY, imanage.DIT_TRUSTEE.IS_DELETED, imanage.DIT_TRUSTEE.IS_ENABLED, imanage.DIT_TRUSTEE.IS_LEAF_NODE, imanage.DIT_TRUSTEE.LABEL_F21011, imanage.DIT_TRUSTEE.LOGIN_LOCKOUT_TIME, imanage.DIT_TRUSTEE.MODIFIED_TIME, imanage.DIT_TRUSTEE.PARENT_TRUSTEE_RSID, imanage.DIT_TRUSTEE.PASSWORD_F21015, imanage.DIT_TRUSTEE.PASSWORD_FAIL_COUNT, imanage.DIT_TRUSTEE.PASSWORD_MODIFIED_TIME, imanage.DIT_TRUSTEE.RDN, imanage.DIT_TRUSTEE.REPLICATION_ID, imanage.DIT_TRUSTEE.SID, imanage.DIT_TRUSTEE.SYNCHRONIZE_ID, imanage.DIT_TRUSTEE.SYNCHRONIZED_TIME, imanage.DIT_TRUSTEE.TRUSTEE_TYPE, imanage.DIT_TRUSTEE.UID_F21024, imanage.DIT_TRUSTEE.WORKSPACE_LIBRARY, imanage.DIT_TRUSTEE.WORKSPACE_RSID, imanage.DIT_TRUSTEE.IS_WORKSPACE_LIBRARY_INHERITED, imanage.DIT_TRUSTEE.IS_HOME_LIBRARY_INHERITED, imanage.DIT_TRUSTEE.S_CCSSBL_LBRRY_LST_NHRT_F60326, imanage.DIT_TRUSTEE.NAME_FIRST, imanage.DIT_TRUSTEE.NAME_MIDDLE, imanage.DIT_TRUSTEE.NAME_LAST, imanage.DIT_TRUSTEE.NAME_FULL, imanage.DIT_TRUSTEE.NAME_SUFFIX, imanage.DIT_TRUSTEE.NAME_SALUTATION, imanage.DIT_TRUSTEE.GENDER, imanage.DIT_TRUSTEE.JOB_TITLE, imanage.DIT_TRUSTEE.ANNIVERSARY, imanage.DIT_TRUSTEE.BIRTHDATE, imanage.DIT_TRUSTEE.ASSISTANT_RSID, imanage.DIT_TRUSTEE.LOCALE_LANGUAGE, imanage.DIT_TRUSTEE.LOCALE_COUNTRY, imanage.DIT_TRUSTEE.LOCALE_TIMEZONE, imanage.DIT_TRUSTEE.EMAIL_1, imanage.DIT_TRUSTEE.EMAIL_2, imanage.DIT_TRUSTEE.EMAIL_3, imanage.DIT_TRUSTEE.EMAIL_FORMAT_1, imanage.DIT_TRUSTEE.EMAIL_FORMAT_2, imanage.DIT_TRUSTEE.EMAIL_FORMAT_3, imanage.DIT_TRUSTEE.IM_ID, imanage.DIT_TRUSTEE.PHONE_HOME, imanage.DIT_TRUSTEE.PHONE_BUSINESS, imanage.DIT_TRUSTEE.PHONE_MOBILE, imanage.DIT_TRUSTEE.PHONE_PAGER, imanage.DIT_TRUSTEE.PHONE_OTHER, imanage.DIT_TRUSTEE.FAX_HOME, imanage.DIT_TRUSTEE.FAX_BUSINESS, imanage.DIT_TRUSTEE.FAX_OTHER, imanage.DIT_TRUSTEE.MAILING_ADDRESS, imanage.DIT_TRUSTEE.BA_DEPARTMENT, imanage.DIT_TRUSTEE.BA_LOCATION, imanage.DIT_TRUSTEE.BA_COMPANY, imanage.DIT_TRUSTEE.BA_STREET_1, imanage.DIT_TRUSTEE.BA_STREET_2, imanage.DIT_TRUSTEE.BA_POBOX, imanage.DIT_TRUSTEE.BA_CITY, imanage.DIT_TRUSTEE.BA_STATE, imanage.DIT_TRUSTEE.BA_COUNTRY, imanage.DIT_TRUSTEE.BA_POSTAL_CODE, imanage.DIT_TRUSTEE.HA_STREET_1, imanage.DIT_TRUSTEE.HA_STREET_2, imanage.DIT_TRUSTEE.HA_POBOX, imanage.DIT_TRUSTEE.HA_CITY, imanage.DIT_TRUSTEE.HA_STATE, imanage.DIT_TRUSTEE.HA_COUNTRY, imanage.DIT_TRUSTEE.HA_POSTAL_CODE, imanage.DIT_TRUSTEE.WP_HOME, imanage.DIT_TRUSTEE.WP_BUSINESS, imanage.DIT_TRUSTEE.WP_OTHER, imanage.DIT_TRUSTEE.NE_DELIVERY_MODE_IMMEDIATE, imanage.DIT_TRUSTEE.NE_DELIVERY_MODE_SUMMARY, imanage.DIT_TRUSTEE.NE_USER_PREFERENCE, imanage.DIT_TRUSTEE.NE_USER_SUMMARY_TIME, imanage.DIT_TRUSTEE.NE_COPY_TO_ASSISTANT, imanage.DIT_TRUSTEE.IS_EXTERNAL, imanage.DIT_TRUSTEE.IS_IS_EXTERNAL_INHERITED, imanage.DIT_TRUSTEE.NOTES, imanage.DIT_TRUSTEE.LOCATION_RSID, imanage.DIT_TRUSTEE.IS_ALL_IP_VALID, imanage.DIT_TRUSTEE.LAST_LOGON_TIME, imanage.DIT_TRUSTEE.S_HM_PG_WRKSPC_NHR_F4294966291, imanage.DIT_TRUSTEE.S_PRFRNCS_FCLTY_NH_F4294966292, imanage.DIT_TRUSTEE.HOME_PAGE_WORKSPACE, imanage.DIT_TRUSTEE.PREFERENCES_FACILITY, imanage.DIT_TRUSTEE.P_NEW_ITEM_INDICATOR, imanage.DIT_TRUSTEE.P_PWD_QUESTION, imanage.DIT_TRUSTEE.P_PWD_ANSWER, imanage.DIT_TRUSTEE.X_ECF_USER, imanage.DIT_TRUSTEE.X_DEPARTMENTS, imanage.DIT_TRUSTEE.X_TP_CLASSIFICATION, imanage.DIT_TRUSTEE.X_IMR_ENABLED_TIME, imanage.DIT_TRUSTEE.X_CAN_MANAGE_COI, imanage.DIT_TRUSTEE.X_CAN_ADD_THIRD_PARTY, imanage.DIT_TRUSTEE.X_IS_SECURITY_ADMINISTRATOR, imanage.DIT_TRUSTEE.X_IS_A_AND_S_DIRECT_LOAD, imanage.DIT_TRUSTEE.X_IS_ECF_DIRECT_LOAD, imanage.DIT_TRUSTEE.X_IS_NATIVE_REPOSITORY, imanage.DIT_TRUSTEE.X_CLIENT_CATEGORY, imanage.DIT_TRUSTEE.X_IS_ECF2_USER, imanage.DIT_TRUSTEE.X_IS_ECF2_ADMIN, imanage.DIT_TRUSTEE.X_CWS_UNIT, imanage.DIT_TRUSTEE.X_XCHANGING_ID, imanage.DIT_TRUSTEE.X_IS_DOCUMENT_FILE_VIEWER, imanage.DIT_TRUSTEE.X_IS_CWS_USER
    FROM imanage.DIT_TRUSTEE
    WHERE ((imanage.DIT_TRUSTEE.WORKSPACE_RSID = :"SYS_B_0") AND (UPPER(imanage.DIT_TRUSTEE.RDN) = :1)) ORDER BY imanage.DIT_TRUSTEE.NAME_FIRST ASC, imanage.DIT_TRUSTEE.NAME_LAST ASC, imanage.DIT_TRUSTEE.UID_F21024 ASC, imanage.DIT_TRUSTEE.RDN ASC
    which shows the bind vars in place.
    while definition of index IX_DIT_TRUSTEE_6 is:
    CREATE INDEX "IMANAGE"."IX_DIT_TRUSTEE_6" ON "IMANAGE"."DIT_TRUSTEE" ("WORKSPACE_RSID", "DIT_CLASS", "SID") TABLESPACE "REPOS_INDX" PCTFREE 10INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 512K BUFFER_POOL DEFAULT) LOGGING LOCAL
    Now, I below details explaining the index it started using despite outline in place:
    SQL> select sql_id, HASH_VALUE, CHILD_NUMBER, users_executing from v$sql where PLAN_HASH_VALUE=2563299851;
    SQL_ID        HASH_VALUE CHILD_NUMBER USERS_EXECUTING
    ah8nzqhyu7xh4 1034155524            1               0
    SQL> SELECT hash_value, child_number, sql_text FROM v$sql WHERE sql_id='ah8nzqhyu7xh4';
    HASH_VALUE CHILD_NUMBER
    SQL_TEXT
    1034155524            1
    SELECT imanage.DIT_TRUSTEE.CREATED_TIME, imanage.DIT_TRUSTEE.DIT_CLASS, imanage.DIT_TRUSTEE.DOES_PASSWORD_EXPIRE, imanage.DIT_TRUSTEE.DOMAIN, imanage.DIT_TRUSTEE.FORCE_PASSWORD_CHANGE, imanage.DIT_TRU
    STEE.HOME_LIBRARY, imanage.DIT_TRUSTEE.IS_DELETED, imanage.DIT_TRUSTEE.IS_ENABLED, imanage.DIT_TRUSTEE.IS_LEAF_NODE, imanage.DIT_TRUSTEE.LABEL_F21011, imanage.DIT_TRUSTEE.LOGIN_LOCKOUT_TIME, imanage.D
    IT_TRUSTEE.MODIFIED_TIME, imanage.DIT_TRUSTEE.PARENT_TRUSTEE_RSID, imanage.DIT_TRUSTEE.PASSWORD_F21015, imanage.DIT_TRUSTEE.PASSWORD_FAIL_COUNT, imanage.DIT_TRUSTEE.PASSWORD_MODIFIED_TIME, imanage.DIT
    _TRUSTEE.RDN, imanage.DIT_TRUSTEE.REPLICATION_ID, imanage.DIT_TRUSTEE.SID, imanage.DIT_TRUSTEE.SYNCHRONIZE_ID, imanage.DIT_TRUSTEE.SYNCHRONIZED_TIME, imanage.DIT_TRUSTEE.TRUSTEE_TYPE, imanage.DIT_TRUS
    TEE.UID_F21024, imanage.DIT_TRUSTEE.WORKSPACE_LIBRARY, imanage.DIT_TRUSTEE.WORKSPACE_RSID, imanage.DIT_TRUSTEE.IS_WORKSPACE_LIBRARY_INHERITED, imanage.DIT_TRUSTEE.IS_HOME_LIBRARY_INHERITED, imanage.DI
    SQL> SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('ah8nzqhyu7xh4',1));
    PLAN_TABLE_OUTPUT
    SQL_ID  ah8nzqhyu7xh4, child number 1
    SELECT imanage.DIT_TRUSTEE.CREATED_TIME, imanage.DIT_TRUSTEE.DIT_CLASS,
    imanage.DIT_TRUSTEE.DOES_PASSWORD_EXPIRE, imanage.DIT_TRUSTEE.DOMAIN,
    imanage.DIT_TRUSTEE.FORCE_PASSWORD_CHANGE, imanage.DIT_TRUSTEE.HOME_LIBRARY,
    imanage.DIT_TRUSTEE.IS_DELETED, imanage.DIT_TRUSTEE.IS_ENABLED,
    imanage.DIT_TRUSTEE.IS_LEAF_NODE, imanage.DIT_TRUSTEE.LABEL_F21011,
    imanage.DIT_TRUSTEE.LOGIN_LOCKOUT_TIME, imanage.DIT_TRUSTEE.MODIFIED_TIME,
    imanage.DIT_TRUSTEE.PARENT_TRUSTEE_RSID, imanage.DIT_TRUSTEE.PASSWORD_F21015,
    imanage.DIT_TRUSTEE.PASSWORD_FAIL_COUNT, imanage.DIT_TRUSTEE.PASSWORD_MODIFIED_TIME,
    imanage.DIT_TRUSTEE.RDN, imanage.DIT_TRUSTEE.REPLICATION_ID, imanage.DIT_TRUSTEE.SID,
    imanage.DIT_TRUSTEE.SYNCHRONIZE_ID, imanage.DIT_TRUSTEE.SYNCHRONIZED_TIME,
    imanage.DIT_TRUSTEE.TRUSTEE_TYPE, imanage.DIT_TRUSTEE.UID_F21024,
    imanage.DIT_TRUSTEE.WORKSPACE_LIBRARY, imanage.DIT_TRUSTEE.WORKSPACE_RSID,
    imanage.DIT_TRUSTEE.IS_WORKSPACE_LIBRARY_INHERITED,
    imanage.DIT_TRUSTEE.IS_HOME_LIBRARY_INHERITED, imanage.DI
    Plan hash value: 2563299851
    | Id  | Operation                    | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT             |                      |       |       |     4 (100)|          |
    |   1 |  SORT ORDER BY               |                      |     1 |   248 |     4  (25)| 00:00:01 |
    |*  2 |   TABLE ACCESS BY INDEX ROWID| DIT_TRUSTEE          |     1 |   248 |     3   (0)| 00:00:01 |
    |*  3 |    INDEX RANGE SCAN          | DIT_TRUSTEE_TST1_IDX |     1 |       |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - filter("DIT_TRUSTEE"."WORKSPACE_RSID"=:SYS_B_0)
       3 - access("DIT_TRUSTEE"."SYS_NC00096$"=:1)
    Note
       - outline "SYS_OUTLINE_13100417531513606" used for this statement
    38 rows selected.
    Definition of index DIT_TRUSTEE_TST1_IDX is:
    CREATE INDEX "IMANAGE"."DIT_TRUSTEE_TST1_IDX" ON "IMANAGE"."DIT_TRUSTEE" (UPPER("RDN")) TABLESPACE "REPOS_INDX" PCTFREE 10 INITRANS 2 MAXTRANS 255STORAGE ( INITIAL 512K BUFFER_POOL DEFAULT) LOGGING LOCAL
    I didnt want the query to use index DIT_TRUSTEE_TST1_IDX as it performs bad for the customer as compare to index IX_DIT_TRUSTEE_6
    The question arises here is that can we force an index to be used as part of stored outline because when we created outline, it was using index IX_DIT_TRUSTEE_6.

  • Query on stored outlines

    Hi,
    The database version is 10204.
    I have a query which is running fine in TEST but not in PRODUCTION.
    I have created the outline, however have a doubt.
    The difference in the query in TEST and PROD is that the schema in TEST differs from the schema in PROD.
    However object names remain the same.
    Would the outline still work in PROD?
    select * from crmprd.table1 ...........
    select * from db3.table1 ......Rgds,
    Sanjay

    No, that won't work
    >
    There is a one-to-one correspondence between SQL text and its stored outline. If you specify a different literal in a predicate, then a different outline applies. To avoid this, replace literals in applications with bind variables
    >
    See Using Plan Stabilility in the Database Performance Tuning Guide.
    http://docs.oracle.com/cd/B19306_01/server.102/b14211/outlines.htm
    The outline association is based on a hash of the SQL text and the hash won't match. That is why the above excerpt suggests using bind variables; it makes the hash the same even though the actual value of the bind can be different at run time.

  • Stored Outlines in SAP

    Hi,
    is anyone using stored outlines within SAP?
    Would you pleas share your experience with it's implementation.
    Thanks
    Volker

    Volker Borowski wrote:>
    > >
    YukonKid wrote:
    > > If you go for outlines you would need to
    > >
    > > a) capture the query exactly as it is executed by the application, hints and all
    > > yk
    > http://forums.sdn.sap.com/post!reply.jspa?messageID=8458029
    > Hi YK,
    >
    > this would be a major "gotcha".
    > My statement has bind variables and I am not able to force the plan
    > to the correct one by invalidating an index.
    > I either need a hint (which will not be in the generated code) or
    > change the sequence of the tables in the from clause.
    >
    > So in both ways the stored outline would refer to a statement,
    > that is literally diffrent.
    >
    > So if I got you correctly, I will not be able to like the plan of a statement to a diffrent one?
    no - it works the other way round:
    Statement A -> worse plan
    you would make it to use the more efficient plan (i.e. using session parameters and such)
    capture that plan and use it on Statement A.
    >
    >
    > The change I'd have to do would be
    >
    > :
    > FROM
    >   table1  T_00,
    >   table2  T_01,
    >   table3  T_02,
    >   table4  T_03,
    >   table5  T_04,
    >   table6  T_05,
    >   table7  T_06,
    >   table8  T_07,
    > WHERE
    > :
    >
    > to
    >
    > :
    > FROM
    >   table2  T_01,
    >   table3  T_02,
    >   table1  T_00,
    >   table4  T_03,
    >   table5  T_04,
    >   table6  T_05,
    >   table7  T_06,
    >   table8  T_07,
    > WHERE
    > :
    >
    > Now as for the SQL Syntax, this make absolutely no diffrence.
    > But the plan changes to effectively 50% less consistent gets (~12000 -> ~6500)
    > and the total optimizer costs for both plans are identical.
    >
    > So I would like to link the plan for statement 2 to the literal statement 1.
    If you have control over the statement check out the ORDERED hint and forget stored outlines
    SELECT /*+ ORDERED */ ....FROM ....WHERE
    tables get joined in the order of the from clause.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements006.htm#SQLRF50601
    But same applies: Don't try to be more clever than the CBO (99% of the time he is smarter than you)....
    >
    > Volker

  • Stored Outline for Bind Variable

    Hi,
    Please let me know the use of stored outline to maintain the same execution plan for a sql which contains bind variable.
    I know how to use stored outline for a sql which does not contain bind variable. But I want the use of stored outline for sql where bind variables have been used. Please provide an example.
    Thanks,
    Mrinmoy
    Edited by: user3001930 on Aug 10, 2010 11:22 PM

    Not sure as I don't use them myself, but on AskTom:
    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1396058400346694178
    He says:
    >
    stored outlines are deprecated in 11g - replaced by query plan baselines.
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/sqlplsql.htm#sthref2589

  • So, iDisk (great with MobileMe) is closed! Ok. I got the most expensive iCloud Plan and LOVED storing files online. Is that REALLY OVER??!! (besides Numbers', Pages', and Keynote's docs sync).. Will I REALLY have to downgrade to "free" on iCloud?!!

    So, iDisk (great with MobileMe) is closed! Ok. I got the most expensive iCloud Plan and LOVED storing files online. Is that REALLY OVER??!! (besides Numbers', Pages', and Keynote's docs sync).. Will I REALLY have to downgrade to "free" on iCloud and PAY for "DropBox", "Google Drive" or "Microsft's Sky Whatever.."?!!
    I could not log in to this Support Community with my UPDATED Apple ID (and this is another issue I can't believe Apple just says "NO, you CAN'T!" - deleting other (old) Apple IDs we've created by mistake or a long time ago and being able to have it all on ONE SINGLE UPDATED Apple ID - ALSO saving Apple's storage servers, etc.).
    Anyway, my Apple ID for better communication is [email protected] (but I really couldn't log in here - it kept saying that the e-mail is already registered, etc. I know it, I'm trying to use it here, that's all...
    So, really. Of course a lot of people don't care about the iDisk issue. That's fine, we all love and hate specific apps or software.. But why has Apple just shut it down, since it was so EASY to use (as DropBox) on all our Apple devices?!! So, we really can't upload/store any kind of files anymore and that's it?!
    I used iDisk when MobileMe was still alive, and it was great to have my files from work, home, any backup (whatever we want) uploaded and synced and used in our Macs, iPhones and iPads. If we have the OPTION of an iCloud Plan (the top one, for example), but we just don't like the automatick backups for the iPhones and iPads, nor the Pictures' sync function.. Why can't we just have the SAME simple and efficient/great service of the iDisk installed in each device?!
    Do we really have to go back and downgrade back to the free iCloud Option (just for keeping the e-mail) and paying extra for DropBox, Google, Microsoft, any other services?! I have nothing against them - I actually have DropBox and it works great because it REMINDS me of iDisk!! But WHY NOT just keep it simple and closed with 1 company/platform/option - Apple's iOS, OSX, etc.
    That's why I decided to have a Macbook Pro, an iPhone 4S and an iPad 3rd. Generation (for example, along with other products and services such as Apple TV).. I know I'm CHOOSING to stay with 1 world, that's fine. And that's why I didn't (yet) go for a Samsung phone or another tablet.. I wanna stick with 1 pattern and I have chosen Apple's..
    Just can't understand such an innovative company make such decisions (such as shutting down iDisk or not letting us just DELETE Apple IDs we do NOT use anymore).. Please, just some guidance or confirmation if that's correct: No way of uploading files others than Numbers', Pages' or Keynote's!!??
    Thank you very much!!
    Peace.

    Thank you Roger.
    That's exactly what I was afraid of...
    During all the time I have been a loyal customer of Apple's products and services, these have been the only 2 issues that I really can't understand (specially when we look at Apple's strategies and management)...
    1) Not being able to DELETE (simply delete or deactivate) old or duplicated Apple IDs... I have 3 different Apple IDs but only one is the real Apple ID I use for everything, with all my purchases and services (such as e-mail) related to it (Why won't Apple jus let people delet, deactivate or - at least - merge Apple IDs?! That would help everyone, including Apple when we think about costs, storage, database maintenance, etc.) - Actually, even when I gave up on trying to delete other Apple IDs, I tried to have the one I really use and have organized to use my @me.com address as the Apple ID itself (as Apple asks us to do - and makes sense, of course). But never worked. Just because I created that Apple ID with a @hotmail.com account (since it asks for a valid e-mail when you create an Apple ID, it NEVER lets me now change my Apple ID to my @me.com e-mail address - I mean JUST having my @me.com e-mail address as my primary e-mail and my Apple ID (for example, having that old @hotmail.com e-mail address out of it, cleaned..)!
    2) The other issue was this one, about iDisk. Of course there must be reasons for having it shut down, maybe the apps used by iPhone and iPad, along with the folder on Mac OSX, is way too complicated, expensive, full of bugs, I don't know. But if we decide to pay for 50GB of online storage, why even THINK about different options for files we use?! I have Dropbox, I've read about Google Drive and Microsoft SkyDrive, etc. But I just wanted to STICK with a single ALL-APPLE solution.. That is.. Pay the annual fee for the 50GB and just still keep any file I want on the cloud with iDisk. So, what Apple tells me is that if I have other files than iWork or PDF (and some few exceptions), I should actually downgrade to "free" iCloud and decide to PAY for another solution (organization), such as DropBox, Google Disk or Drive (I don't really know), Micrsoft's SkyDrive..
    Of course there's the strategy of getting more and more people to use Pages, Numbers and Keynote (buying them for iOS and Mac OSX, as I already have and love them). But "killing" iDisk and just telling users to look for other storage solutions doesn't really sound like Apple.
    I have seen so many questions here about both issues (deleting or merging Apple IDS + iDisk back since we pay for storage) that I really believe Apple should reconsider these issues or, at least, open the issue and let us know what would be the best "partner solution" for iCloud...
    Thanks a lot!
    All the best...
    Eduardo Rocha.
    [email protected]

Maybe you are looking for

  • Help...will the transition be easy?

    I am currently running 10.3.9 and want to make the move to Tiger! I am sure the main part of my system will not be a problem, but want to make sure the programs I use will work as well as some of the externals. Is there a list of problem areas when m

  • PSE 4 Mystery on Keywords and File Info

    I use PSE 4 for organizing my photos only. I edit in PS CS and then "get" the edited files from the External HD to organizer and tag them. The tags show up in File Info as keywords. Great. If i go back to PS CS and do File Info the keywords there are

  • Proforma invoice report

    Hi All, Can anybody tell me if there is a report within SAP that can be run to show excise  proforma invoices for a particular Stock transfer order number using querry? quick and right answers would be highly appeciated please..... Best Regards, Shan

  • Where are my songs/playlists?

    I recently bought a Mac Air and had my old Mac Itunes, documents etc. transferred to my new Mac. I can't find my songs or playlists, just a "quick look" which plays a snippet. My account shows that I have purchased the songs. By fluke, I did find the

  • Is there a way to import ACL into WiSM

    I was trying to find an easier way to import ACL's into WiSM or WCS . Any thoughts ?