Oem explain plan produced doesn't correspond to explain plan with tkprof

Hello all,
I am running OEM on a 10.2.0.3 database and I have a very slow query with cognos 8 BI on my data warehouse.
I went to the dbconsole through OEM and connected to target database I went to look at the query execution and then got an explain plan.
Then I did a trace file and ran it throught tkprof.
When I look at both produced explain plan, I can see the tree looks the same exept the corresponding values. In OEM, it says I am going throug 18000 rows and in the tkprof result it says more like millions of records.
As anybody had these kind of results?
Shall I have more confidence in TKprof then OEM?
It is very important to me since I am being chalanged by an external DBA.

I would recommend you to get Christian Antogini´s book "Troublshooting Oracle Performance", (http://www.antognini.ch/top/) which explains everything you need to know when analyzing Oracle SQL Performance and Explain Plans.
If you properly trace your SQL Statement, you will get "STAT" lines in the trace file. These stat lines show you the actual number of rows processed per row source operation. Explain plan per default does only show you the "estimated" row counts for the row source operations no matter whether you use "explain=" in the tkprof call or OEM to get the explain plan. Tkprof reads the STAT lines from the trace and outputs a section which is similar to an execution plan but contains the "real" number of rows.
However, if you want to troubleshoot Oracle Performance, I would recommend you to run the statement with the hint /*+ GATHER_PLAN_STATISTICS */ or set statistics_level=ALL in your session (not database-wide!).
If you do, you can get an excellent execution plan with DBMS_XPLAN.DISPLAY_CURSOR containing both estimated rows as well as actual rows combined with the "number of starts" for e.g. nested loop joins.
Get the book, read it, and you will be able to discuss this issue with your external dba in a professional way. ;-)
Regards,
Martin
www.ora-solutions.net

Similar Messages

  • Explain Plan from TKPROF trace file.

    Hello,
    My procedure is taking time for that i have trace on in procedure fo find explain plan of particular query.
    Using below statement Trace is on.
       EXECUTE IMMEDIATE 'ALTER SESSION SET SQL_TRACE = TRUE';
       EXECUTE IMMEDIATE 'ALTER SESSION SET TIMED_STATISTICS = TRUE';Now for getting expalin plan from TKPROF i have used below statement but for some query i have found explain paln and some case i cant found explain plan.
    tkprof mf_ora_23773.trc mf_ora_23773.txt explain =abc/abc
    can u please help me to analyze where i m wrong?
    Thanks.

    First of all, you should best avoid using the explain= clause on the tkprof command line.
    This will run explain plan on the statement in the trace file, and that explain plan can even be wrong, as there is no information on datatypes in the trace file.
    The real explain plan data is flushed to the trace file, when the program issues commit or rollback. Oracle always issues an implicit commit when the program disconnects, so when you run the program to completion you should have explain plan output in your trace files.
    You won't get explain plan output if you don't have access to the objects in the SQL statement. Also recursive SQL won't produce explain plan result.
    One would need to see part of your trace file to verify your assertion the explain clause doesn't always work.
    Sybrand Bakker
    Senior Oracle DBA

  • How to create an explain plan with rowsource statistics for a complex query that include multiple table joins ?

    1. How to create an explain plan with rowsource statistics for a complex query that include multiple table joins ?
    When multiple tables are involved , and the actual number of rows returned is more than what the explain plan tells. How can I find out what change is needed  in the stat plan  ?
    2. Does rowsource statistics gives some kind of  understanding of Extended stats ?

    You can get Row Source Statistics only *after* the SQL has been executed.  An Explain Plan midway cannot give you row source statistics.
    To get row source statistics either set STATISTICS_LEVEL='ALL'  in the session that executes theSQL OR use the Hint "gather_plan_statistics"  in the SQL being executed.
    Then use dbms_xplan.display_cursor
    Hemant K Chitale

  • My keyboard on my Apple Mac Book doesn't correspond to the control keys

    I Press the keys on my Apple Mac book keyboard and the characters that are produced do not correspond to what is shown on the keys

    Casminfromvik wrote:
    I Press the keys on my Apple Mac book keyboard and the characters that are produced do not correspond to what is shown on the keys
    If you tell us what country you are in and give an example of keys that produce the wrong thing, we can probably tell you which input source you need to activate.

  • Does bigger explain plan in TKPROF output indicate something wrong with SQL

    We were tracing some database sessions.
    Using TKPROF we were able to read the trace file.
    we have noticed that some of the SQL ( 1-2 lines SQL statements) were showing up atleast
    150 lines of explain plan.
    So we realized that the sql statements are badly written.
    Based on that above can we come into the following conclusion:
    - for 1-2 lines of SQL Statement if there is 100+ lines of explain plan in TKPROF report, it indicates the SQL statement
    is wrongly written ?

    johnpau2013 wrote:
    We were tracing some database sessions.
    Using TKPROF we were able to read the trace file.
    we have noticed that some of the SQL ( 1-2 lines SQL statements) were showing up atleast
    150 lines of explain plan.
    So we realized that the sql statements are badly written.
    Based on that above can we come into the following conclusion:
    - for 1-2 lines of SQL Statement if there is 100+ lines of explain plan in TKPROF report, it indicates the SQL statement
    is wrongly written ?The only rule that is always true for tuning SQL, is that NO rule is ALWAYS true for every SQL statement &
    every data distribution.
    it depends
    post actual example, so we can see what you see.

  • I cannot pay for subscription cause the system says the address for the invoice doesn't correspond to my credit card

    i cannot pay for subscription cause the system says the address for the invoice doesn't correspond to my credit card. It's not possible, my credit card doesn't correspond to any address

    These transactions help Adobe confirm that the credit card used is valid and not reported as lost or stolen. The transaction isn't charged to your account, and once your credit card company verifies it, Adobe removes the charge.
    http://helpx.adobe.com/x-productkb/policy-pricing/adobe-stores-online-order-payment-faq.ht ml
    You can also contact Adobe Support to place the order.
    Regards
    Rajshree

  • If my iphone 4s doesn't support 4G LTE, then what kind of data would I get from the plan with 4G LTE Data?

    I am currently have iphone 4s. I am planing to use the plan which have 4G LTE for data; however, my phone doesn't support 4G LTE. So, i want to know what kind of data would i get from this plan. Is it gonna be 4g or 3g or no data at all? I am very confused right now.
    The plan is UNLIMITED WEB & TEXT WITH 100 MINUTES TALK.  Up to 5Gb of nationwide 4g lte data.
    If you look at the plan it has 4g lte data, but my phone doesn't support it. Please answer my question.

    Ask the wireless provider you have the plan with - they should be able to tell what speed
    you will get if you cannot connect at 4G/LTE.
    Your iPhone will connect at the highest speed it can by default. But not all wireless providers
    offer 3G as the fallback connection on their 4G network - some fall back to 2G.

  • Can someone explain the more everything plan with edge up

    I have a share everything plan with 4 smartphones and 6 gig of data.  we are soon due for upgrades due to our 2 year contract being up.  I am starting to do some research and am confused on how the more everything plan with edge up works.
    questions
    1.  do we have to buy new phones to get the discounts offered by this plan?
    2.  will my company discount still work with the discounts of the edge up plan?
    3.  my 4th device is a year oir so from upgrade elegability do we need to wait or can we put that device on the edge up plan now?
    4.  if we upgrade to this more everything plan with edge up do we need to turn in our old phones?
    any help would be appreciated.

        Upgrading is always exciting, gbright! You can save up to $25 per line when upgrading with Edge. This does require you upgrading your device and accepting an Edge agreement. You will still qualify for your monthly employee discount off the More Everything access charges as long as the plan is $34.99 or higher. Each line has its own contract/edge agreement. You do not need to wait for the 4th line to be eligible to take advantage of Edge or the discounts. If you are eligible for the standard Edge, you do not need to trade in your current devices. You only trade in the devices when it is early edge. I can provide you more details in a private message.
    I just sent you a follow request. Please follow back and send me this information in a private message.
    Thank you,
    LenaA_VZW
    Follow us on Twitter @VZWSupport

  • Why optimizer select plan with higher cost?

    Why optimizer select plan with higher cost?
    SQL with hint:
    SELECT /*+ index(ordm ORDA_PK) */
    ordm.orders_id h_docid, ordm.customer_nr h_clientid,
    ordm.cl_doc_type_code h_doctype,
    ordm.cl_doc_status_code cl_doc_status_code,
    ordm.cl_external_error_code h_errorcode, ordm.sys_version_id h_version,
    ordm.doc_number po_number, ordm.curdate po_curdate,
    ordm.cl_currency_code po_curr,
    TO_CHAR (ordm.amount, 'FM999999999999990.00') po_amount,
    ordm.account_nr po_cust_accnum, ordm.customer_name po_cust_name,
    ordd.cl_currency_cust_code po_cust_curr,
    TO_CHAR (ordd.cust_rate, 'FM999999999990.0099999999') po_cust_rate,
    ordd.cust_confirm po_cust_conf, ordd.ben_name po_ben_name,
    ordd.ben_accnum po_ben_accnum,
    ordd.cl_external_payment_code po_cust_amk, ordd.ben_info po_ben_info,
    ordd.comments po_comments
    FROM FINIX_IB.orders_archive ordm, FINIX_IB.orders_archive_fields ordd
    WHERE ordm.orders_id = ordd.orders_id (+)
    AND ordm.orders_id = NVL (4353, ordm.orders_id)
    Execution Plan
    0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=4918 Card=1 Bytes=185)
    1 0 NESTED LOOPS (OUTER) (Cost=4918 Card=1 Bytes=185)
    2 1 TABLE ACCESS (BY INDEX ROWID) OF 'ORDERS_ARCHIVE' (TABLE) (Cost=4916 Card=1 Bytes=87)
    3 2 INDEX (FULL SCAN) OF 'ORDA_PK' (INDEX (UNIQUE)) (Cost=4915 Card=1)
    4 1 TABLE ACCESS (BY INDEX ROWID) OF 'ORDERS_ARCHIVE_FIELDS' (TABLE) (Cost=2 Card=1 Bytes=98)
    5 4 INDEX (RANGE SCAN) OF 'ORDAF_ORDA_FK' (INDEX) (Cost=1 Card=1)
    Statistics
    0 recursive calls
    0 db block gets
    4792 consistent gets
    4786 physical reads
    0 redo size
    1020 bytes sent via SQL*Net to client
    237 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    SQL without hint:
    Execution Plan
    0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=9675 Card=1 Bytes=185)
    1 0 NESTED LOOPS (OUTER) (Cost=9675 Card=1 Bytes=185)
    2 1 TABLE ACCESS (FULL) OF 'ORDERS_ARCHIVE' (TABLE) (Cost=9673 Card=1 Bytes=87)
    3 1 TABLE ACCESS (BY INDEX ROWID) OF 'ORDERS_ARCHIVE_FIELDS' (TABLE) (Cost=2 Card=1 Bytes=98)
    4 3 INDEX (RANGE SCAN) OF 'ORDAF_ORDA_FK' (INDEX) (Cost=1 Card=1)
    Statistics
    1 recursive calls
    0 db block gets
    39706 consistent gets
    39694 physical reads
    0 redo size
    1037 bytes sent via SQL*Net to client
    237 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed

    The way you are comparing costs, is not the right way, as Billy already told you. Only for one query, the cost of different access paths can be compared, as can be seen in a 10053 trace.
    However, your problem seems to arise from the fact that you use the NVL function in the predicate "ordm.orders_id = NVL (4353, ordm.orders_id)". The NVL function always evaluates both expressions, so it has to do a "ordm.orders_id = 4353" and a "ordm.orders_id = ordm.orders_id". This is why both alternatives will show a full scan on your orders_archive table cq. orda_pk index.
    You are probably suppling a bind variable to this statement which in some cases contains a null and in some other cases contains a number. If by any chance you always supply a number, then the solution is easy: drop the NVL function and change the predicate to "ordm.orders_id = :<your bind variable>". If not, then you have combined two queries into one, where both variants each have its own optimal plan, but they have to share their plan due to bind variable peeking.
    To solve this, I think you have two options:
    1) Make sure your statement is reparsed everytime. If your statement doesn't get executed often, this strategy might work. You might implement this by doing unnecessary dynamic sql.
    2) Split your query into two queries where one handles the constant number input and the other handles the null/no input.
    Below are some test results I used for research:
    SQL> create table orders_archive
      2  as
      3  select l orders_id, lpad('*',100,'*') filler from (select level l from dual connect by level <= 10000)
      4  /
    Tabel is aangemaakt.
    SQL> create table orders_archive_fields
      2  as
      3  select l field_id, l+500 orders_id, lpad('*',100,'*') filler from (select level l from dual connect by level <= 9000)
      4  /
    Tabel is aangemaakt.
    SQL> alter table orders_archive add constraint orda_pk primary key (orders_id)
      2  /
    Tabel is gewijzigd.
    SQL> alter table orders_archive_fields add constraint ordaf_pk primary key (field_id)
      2  /
    Tabel is gewijzigd.
    SQL> alter table orders_archive_fields add constraint ordaf_orda_fk foreign key (orders_id) references orders_archive(orders_id)
      2  /
    Tabel is gewijzigd.
    SQL> create index ordaf_orda_fk on orders_archive_fields(orders_id)
      2  /
    Index is aangemaakt.
    SQL> exec dbms_stats.gather_table_stats(user,'ORDERS_ARCHIVE',cascade=>true)
    PL/SQL-procedure is geslaagd.
    SQL> exec dbms_stats.gather_table_stats(user,'ORDERS_ARCHIVE_FIELDS',cascade=>true)
    PL/SQL-procedure is geslaagd.
    SQL> explain plan
      2  for
      3  SELECT /*+ index(ordm ORDA_PK) */
      4  ordm.orders_id h_docid, ordm.filler, ordd.filler
      5  FROM orders_archive ordm, orders_archive_fields ordd
      6  WHERE ordm.orders_id = ordd.orders_id (+)
      7  AND ordm.orders_id = NVL(4353,ordm.orders_id)
      8  /
    Uitleg is gegeven.
    SQL> select * from table(dbms_xplan.display)
      2  /
    PLAN_TABLE_OUTPUT
    | Id  | Operation                    |  Name                  | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT             |                        |     1 |   209 |     8   (0)|
    |   1 |  NESTED LOOPS OUTER          |                        |     1 |   209 |     8   (0)|
    |   2 |   TABLE ACCESS BY INDEX ROWID| ORDERS_ARCHIVE         |     1 |   104 |     7   (0)|
    |*  3 |    INDEX FULL SCAN           | ORDA_PK                |     1 |       |    22   (5)|
    |   4 |   TABLE ACCESS BY INDEX ROWID| ORDERS_ARCHIVE_FIELDS  |     1 |   105 |     2  (50)|
    |*  5 |    INDEX RANGE SCAN          | ORDAF_ORDA_FK          |     1 |       |            |
    Predicate Information (identified by operation id):
       3 - filter("ORDM"."ORDERS_ID"=NVL(4353,"ORDM"."ORDERS_ID"))
       5 - access("ORDM"."ORDERS_ID"="ORDD"."ORDERS_ID"(+))
    17 rijen zijn geselecteerd.
    SQL> exec dbms_lock.sleep(1)
    PL/SQL-procedure is geslaagd.
    SQL> explain plan
      2  for
      3  SELECT
      4  ordm.orders_id h_docid, ordm.filler, ordd.filler
      5  FROM orders_archive ordm, orders_archive_fields ordd
      6  WHERE ordm.orders_id = ordd.orders_id (+)
      7  AND ordm.orders_id = NVL(4353,ordm.orders_id)
      8  /
    Uitleg is gegeven.
    SQL> select * from table(dbms_xplan.display)
      2  /
    PLAN_TABLE_OUTPUT
    | Id  | Operation                    |  Name                  | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT             |                        |     1 |   209 |    47   (7)|
    |   1 |  NESTED LOOPS OUTER          |                        |     1 |   209 |    47   (7)|
    |*  2 |   TABLE ACCESS FULL          | ORDERS_ARCHIVE         |     1 |   104 |    46   (7)|
    |   3 |   TABLE ACCESS BY INDEX ROWID| ORDERS_ARCHIVE_FIELDS  |     1 |   105 |     2  (50)|
    |*  4 |    INDEX RANGE SCAN          | ORDAF_ORDA_FK          |     1 |       |            |
    Predicate Information (identified by operation id):
       2 - filter("ORDM"."ORDERS_ID"=NVL(4353,"ORDM"."ORDERS_ID"))
       4 - access("ORDM"."ORDERS_ID"="ORDD"."ORDERS_ID"(+))
    16 rijen zijn geselecteerd.So this shows I reproduced your situation. Because the decode function doesn't evaluate all its arguments, but evaluates the first argument to see which arguments to evaluate, you'll see different behaviour now.
    SQL> exec dbms_lock.sleep(1)
    PL/SQL-procedure is geslaagd.
    SQL> explain plan
      2  for
      3  SELECT
      4  ordm.orders_id h_docid, ordm.filler, ordd.filler
      5  FROM orders_archive ordm, orders_archive_fields ordd
      6  WHERE ordm.orders_id = ordd.orders_id (+)
      7  AND ordm.orders_id = decode(4353,null,ordm.orders_id,4353)
      8  /
    Uitleg is gegeven.
    SQL> select * from table(dbms_xplan.display)
      2  /
    PLAN_TABLE_OUTPUT
    | Id  | Operation                    |  Name                  | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT             |                        |     1 |   209 |     3  (34)|
    |   1 |  NESTED LOOPS OUTER          |                        |     1 |   209 |     3  (34)|
    |   2 |   TABLE ACCESS BY INDEX ROWID| ORDERS_ARCHIVE         |     1 |   104 |     2  (50)|
    |*  3 |    INDEX UNIQUE SCAN         | ORDA_PK                |     1 |       |     2  (50)|
    |   4 |   TABLE ACCESS BY INDEX ROWID| ORDERS_ARCHIVE_FIELDS  |     1 |   105 |     2  (50)|
    |*  5 |    INDEX RANGE SCAN          | ORDAF_ORDA_FK          |     1 |       |            |
    Predicate Information (identified by operation id):
       3 - access("ORDM"."ORDERS_ID"=4353)
       5 - access("ORDM"."ORDERS_ID"="ORDD"."ORDERS_ID"(+))
    17 rijen zijn geselecteerd.
    SQL> exec dbms_lock.sleep(1)
    PL/SQL-procedure is geslaagd.
    SQL> explain plan
      2  for
      3  SELECT
      4  ordm.orders_id h_docid, ordm.filler, ordd.filler
      5  FROM orders_archive ordm, orders_archive_fields ordd
      6  WHERE ordm.orders_id = ordd.orders_id (+)
      7  AND ordm.orders_id = decode(null,null,ordm.orders_id,null)
      8  /
    Uitleg is gegeven.
    SQL> select * from table(dbms_xplan.display)
      2  /
    PLAN_TABLE_OUTPUT
    | Id  | Operation                    |  Name                  | Rows  | Bytes | Cost (%CPU)|
    |   0 | SELECT STATEMENT             |                        |     1 |   209 |    46   (5)|
    |   1 |  NESTED LOOPS OUTER          |                        |     1 |   209 |    46   (5)|
    |*  2 |   TABLE ACCESS FULL          | ORDERS_ARCHIVE         |     1 |   104 |    45   (5)|
    |   3 |   TABLE ACCESS BY INDEX ROWID| ORDERS_ARCHIVE_FIELDS  |     1 |   105 |     2  (50)|
    |*  4 |    INDEX RANGE SCAN          | ORDAF_ORDA_FK          |     1 |       |            |
    Predicate Information (identified by operation id):
       2 - filter("ORDM"."ORDERS_ID"="ORDM"."ORDERS_ID")
       4 - access("ORDM"."ORDERS_ID"="ORDD"."ORDERS_ID"(+))
    16 rijen zijn geselecteerd.So two different plans depending on the input.
    Regards,
    Rob.

  • Savings Plan with Monthly contribution to be used for employees weekly paid

    Hi,
    We have a Savings Plan with Monthly contribution. This plan has to be used for employees for weekly paid employees.
    How to configure this for weekly paid employees and for which payroll will the contribution gets deducted.
    Please help on this issue.
    Regards,
    Ilyas

    Ilyas ,
    In SPRO - Personnel management-Benefits-Plans-Savings plans- Define employee contribution rules
    In the contribution limits for regular payroll - If your savings plans contribution types is by percentage then give the maximum pre-tax has 100.00 , if it is not by percentage -then give the contribution units to its maximum .
    To recheck -go to Pa30 and benefits tab -saving plans and regular contribution tab and check your reference period for contributions.
    Let me know if it doesn't work
    Shalini

  • How to create  a test plan with specific transactions (or program)

    Hello,
    I'm a new user in Sol Man !
    How to create  a test plan with specific transactions (or program).
    In my Business Blueprint (SOLAR01) I've created in 'transaction tab' the name of my specific transactions and linked it.
    In my test plan (STWB_2) those specific doesn't appear to be selected !
    Thanks in advance.
    Georges HUYNEN

    Hi 
    In solar01 you have defined but you have to assign the test case in solar02 for this test case in the test cases tab.
    When you do so expand the business sceanario node in test plan generation of STWB_2 transaction and now that will appear.
    Also visit my weblog
    /people/community.user/blog/2006/12/07/organize-and-perform-testing-using-solution-manager
    please reward points.

  • How can I copy test plan WITH ITS RESULTS (PASS/FAIL) to other project in MTM??

    How can I copy test plan WITH ITS RESULTS (PASS/FAIL) to other project in MTM??

    Hi odedn,
    Thank you for posting in MSDN forum.
    Based on your issue, you mean that you want to copy the test plan with test results from the current team project
    to other team project, am I right?
    If yes, as far as I know that when we copy test plan with test results to other team proejcts. It is default that
    there just will not copy the test plan with test results (pass/fail) to other team project in MTM.
    You can refer the following MSDN document’s
    what gets cloned, it explained that which objects are copied from the source test plan to the destination test plan.
    Reference:
    http://msdn.microsoft.com/en-us/library/hh543843.aspx
    If you still want to this feature, I suggest you can
    submit this feature request:
    http://visualstudio.uservoice.com/forums/121579-visual-studio. The Visual Studio product team is listening to user voice there. You can send your idea there and people can vote. If
    you submit this suggestion, I hope you could post that link here, I will help you vote it.
    Thanks for your understanding.
    Best Regards,
    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.

  • HT1918 My Apple ID is disable and I want to change my payment plan with another credit car

    My Apple ID is disable and I want to change my payment plan with another credit card

    You might be able to re-enable your account via this page : http://appleid.apple.com, then 'reset your password'
    You might then need to log out of your account on any iOS devices that you have by tapping on your id in Settings > iTunes & App Store on them and then logging back in so as to 'refresh' the account on them.
    If that doesn't fix it then you might need to contact iTunes Support : http://www.apple.com/support/itunes/contact/ - click on Contact iTunes Store Support on the right-hand side of the page
    When it's enabled you can then follow the instructions on the HT1918 page that you posted from to change your payment method.

  • Planning with planning material

    Hi All,
    I am working on the make to stock scenario where I am working on the strategy 63(planning with planning material).
    As per scenario once I entered the sales order for variant material it should consume the PIR of the planning material but it did not happen with my case. I maintained the necessary master data for both the material like consumption parameters for planning material, strategy group 63 for both the materials, planning material for the variant material and individual and collective indicator for both materials but it didn't work.
    Can you please provide me the reason why it is not happening?
    Thanks in advance
    Lalit

    hi
    The system finds requirements type VSEV because the strategy group has been set to 63.
    See the Table of Planning Strategy Assignments.
    The requirements are passed on to MRP. The stock/requirements list (Logistics -> Production -> MRP-> Evaluations ->Stock/reqmts list) displays the information for the planning material.
    The planned orders are not yet "real," because the variant product cannot be produced until after receipt of the sales order. Technically speaking, the planned orders have order type (VP). It is impossible to convert these (VP) planned orders into production orders, or to use them in a repetitive manufacturing environment. The Conversion field in the display of the planned order is not set, which indicates that it is not possible to produce this planned order.
    The MRP run also creates procurement requisitions for the components
    The main objective of this strategy has now been reached: procurement for the components has been triggered, even without sales orders, based on the sales forecast from Demand Management only. Procurement of the components can occur in a variety of ways. Here we are assuming that a goods receipt (for a purchase order, for example) takes place.
    A sales order for a variant material is entered
    · Suppose that, for this example, an order with a quantity of 90 pieces is entered with a required delivery date of today. This order can be confirmed after the first planned independent requirement date
    · The consumption parameters have been maintained correctly ( Consumption mode, Bwd consumption per., Fwd consumption per.) in the planning material.
    · This date and the planned independent requirements can be found.
    For more information, see Consumption Strategies and Logic.
    award points if useful
    Regards
    ramesh

  • SAP PP- Planning with Planning Material(60)u201D

    Hello SAP-Guruu2019s
    Pls explain the Strategy u201C Planning with Planning Material(60)u201D and pls give any examples if possible.
    Thanks in advance

    Dear,
    This planning strategy is particularly useful for planning BOMs that contain variant as well as non-variable parts.
    This trategy allows you to plan the variants of one product. The term variant indicates "similar" parts; which implies a much higher number of variants. With this strategy, for example, you can easily exchange a component in all similar BOMs.
    For Strategy 60 , Availablity check is carried out "Check against planned independent requirements" , inthat case Only planned independent requirements are taken into accout and Confirming. There is no ATP check logic.
    Please refer thislink,
    [Planning with Planning Material(60)u201D|https://forums.sdn.sap.com/click.jspa?searchID=17043588&messageID=5369851]
    Regards,
    R.brahmankar

Maybe you are looking for