Rule Based GATP
Dear All,
I'm using Rule Based ATP check for Sales Order.
When I conduct ATP simulation in APO (SCM 4.0), the results are perfect. the check triggers the rule and displays schedule lines as per rule. (Location substitution).
But when I conduct availability check in Sales order (R/3 4.7), the results are completely different. For Sales Order at Warehouse, it confirms all the requirement irespective of transportation lane lead time from plant to warehouse. Moreover, when I save the sales order, the PReqs created at Warehouse are in future instead of PReqrel in past. (compared to requirement date). Ideally, the Preqs should have same date as that of requirement date and Preqrel should be created after deducting Transporation lead time and GR/GI time.
I would like to know, what parameters in Sales Order document are used to trigger the rule and how is it different from ATP simulation.
Thank you in advance.
Regards,
Bipin K Umarale
Hi
Take a look at the following SAP Note, it gives all the FAQ's on ATP configuration in R/3, hopefully it will help you with your problem:
[Note 547512 - FAQ: Customizing of the ATP in R/3|https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=547512&nlang=EN&smpsrv=https%3a%2f%2fwebsmp208%2esap-ag%2ede]
Regards
Ian
Similar Messages
-
Hello experts,
Our team has configured rule based gatp check parameters and maintained condition technique, relevant rules with product substitution, location substitution, profile parameters and rule determination.
We are having four condition tables i.e. most specific to most generic and condition records are maintained for all the key combinations, whereas system is picking up the record, which is most generic.
Please let me know how the system picks up the condition record in rule based atp check.
Thanks and Regards,
Sai Dacha
9849030809Hi Anupam,
Please find the comments.
Can you also check your check instruction and see if it has
--> "Activate RBA" and "Start immediately" check box checked for the check mode you guys are using and business event A
Comment:
Both the check boxes are checked for the relevant combination.
If you have this setting then I would like you to check in master data where you have created Integrated Rules:
Comment:
I've maintained only one rule, which is in valid periods.
Make sure you have maintained integrated rules correctly and assigned the correct location determination procedure.
Comment:
Checked both Production Substitution and Location determination procedures and their assignments.
--> Very basic point but no harm in checking, sometimes we miss very basic things: Do you have all the locations in APO and also products at those location which you want to populate in the sales order.
Comments:
All the combinations of products and locations are in APO.
Thanks,
Sai Dacha -
Rules-based GATP with sales BOM
Hi,
with reference to the following thread which asks the same question, but although in "answered" status, actually contains no answer to the final question...
GATP Question
We are investigating the possibility of using GATP with rules-based ATP to propose a sourcing plant. The result of this is of course a subitem in the sales order.
My question is, is there any restriction to using the sales BOM with rules-based ATP? We use the sales BOM currently to insert the packaging items into the sales order. From a previous project, I have in the back of my mind that there was a restriction in this respect, and that with the subitem from the GATP result, it was not possible to explode the sales BOM.
I cannot find what I recall to be the explicit SAP-help statement in this respect. Anybody with experience in this?
Regards,
DouglasThe current situation is as follows:
We have the saleable product A in plants X and Y, with a sales BOM in each of the plants, for the packaging items B and C. When product A is entered in the sales order in, say, plant X, the sales BOM is exploded and items B and C are inserted into the sales order. ATP is done in R/3, and if there is no availability in X, then the plant can be manually changed to Y, but each of the subitems from the sales BOM must also be manually changed to Y.
Desired to be situation:
We implement GATP, with a rule to subsitute plant X with plant Y in the event that plant X has no stock. So the desired system response is: enter item A in the sales order with plant X, GATP subsitutes plant X with plant Y and generates a subitem for product A in plant Y. Now the sales BOM is exploded for the new subitem, generating the further subitems for B and C, also in plant Y.
Is this possible? -
Rule Based GATP with Stock transfer order
Hi Experts,
I have activated the rule based with stock transfer GATP, but I have the following two issues
1. when I change sales order in EEC and make a ATP check , the system will not conisder the previous created stock transfer requisition and create a seperate stock transfer requisition, that is, if I trigger 10 times ATP check, the system will create another 10 stock transfer requisition. does anyone know how to let the system delete the previous stock transfer requisition , then create a new one, or using the existing stock transfer requisition?
2. the generated stock transfer requisition is always firmed, it causes if the sales order is deleted, the system can not delete the requisition via heuristic. how to let the system generate unfirmed stock transfer requisition?
thanksRick,
I have never researched this, so I don't know.
The reason I have never looked at this is because I would never want any other process to change supply elements generated by the GATP process. Once these elements are disturbed, then the confirmations of the Sales orders are also open to be disturbed. Regular runs of BackOrder Processing, which accompany most ATP solutions, can then change the sales docs with unpredictable results. Even without BOP, the next Sales person who re-ATPs the order might be in for an unpleasant surprise.
Best regards,
DB49 -
Rule based ATP is not working for Components
Hi All,
Our requirement is to do availability check through APO for Sales order created in ECC,so we are using gATP.
Requirement: We are creating salesorder for BOM header (Sales BOM) and avaialbility check should happen for components i.e. Product avalaibility & Rule based substitution.
Issue: Product availiabilty is working for components but rules based substituion is working, mean Rules are not getting determind for components.
Settings:
- Header doesnot exist in APO and compnents do exist in APO
- Availability check is not enabled for header item category and enabled for Item category for components
- Rules have been created for Components in APO
- Rule base ATP is activated in Check instructions
We have also tried MATP for this i.e. PPM created in APO but still didn't get the desired result.
If we create salesorder for the component material directly then Rule based ATP is happening, so for components Rule based ATP is not working.
How do we enable enable Rulesbased ATP for components, i mean is there any different way to do the same.
Thanks for help.
Regards,
JagadeeshHi Jagdeesh,
If you are creating BOM in ECC and CIFing PPM of FG/Header material to APO, I think you need to CIF Header material, too, with material integration model.
Please include header material in you integration models for material, SO and ATP check as well.
For component availability check, you can use MATP; but for MATP, FG should be in APO. You need not to CIF any receipts of FG (stock, planned orders, POs etc), so that MATP will be triggered directly. Then maintaining Rules for RMs will enable to select available RMs according to the rule created.
Regards,
Bipin -
Rule Based ATP- Error in calling up function 'BAPI_APOATP_CHECK' in APO ser
Hi Experts
I hae configured Rule Based ATP with Multi-Level ATP check. I have completed all configuration required for Rule Based ATP but still facing an error
" Error in calling up function 'BAPI_APOATP_CHECK' in APO server 'SC5CLNT001': Check instructions 30 / A does not exist for locat"
Have any of you ever encountered this error?
Regards,
Sushovan DattaDear Sushovan,
Most likely cause of the above error is a missing requirement class in R/3 and missing Check mode in APO for material and plant combination.
Please read the F1-Help for field check mode in APO:
"Together with the business event, the check mode derived from the product master defines the type and scope of the checks carried out. It also controls forecast consumption.
SD (R/3) uses the requirement class of the requirement as check mode. As of R/3 Plugin 2000.1, the requirement class is transferred (via the strategy group in the material master) to the location-specific APO product master (ATP tab page). In the process, no plausibility check is carried out. For this reason, you should not enter any other check mode in the product master. (The check mode in the product master must agree with the requirement class from the R/3 system.)"
So please create for your material in corresponding plant the requirement class ' 030' assigned to the strategy group in MRP3 in R/3 and the same in the check mode field in //mat1 in APO.
Afterwards the gatp check will find the check mode and business event (check instructions) and the error will be not appear again.
Regards,
Tibor -
Hi Experts,
We are facing couple of issues with Rules based ATP . The scenario is we are using only location based substitution
1) We are creating an order for a material in ECC . This material is GATP relevant & the settings are made for rules based ( if no stock available at Plant 1 it would check for stock at plant 2 and confirm the requested quantity if available ) , ATP check is happening after creation of order for plant1 , but it is not checking for quantity at plant 2 eventhough quantity is available at Plant 2 .
I am checking the rules, it says no rule was found ,it is not possible to dispaly the rules , But for the sameif i am doing a ATP simulation in APO , it is working fine , the susbstitutions are happening & confirmations are being done.
2) IS it possible to use both checking horizon & rules based ATP ? The situation is if we use Checking horizon in check control , any SO will get confirmed based on checking horizon , if no receipts or stock is available before the CH . If the rules based ATP is present along with CH for plants 1 & 2, the system is still confirming the quantity at the CH on Plant1 , even though there is enough quantity to be confirmed at Plant 2.
Thanks for your help
Regards
SurendraThe first issue is solved . There was discrepancy in the data format between APO & ECC . The data when transferred to APO from ECC has been converted to a format which APO uses & when a SO is created in ECC the data that was entered in the SO is not being recognised by APO so the error .
Regards
Surendra -
Rules based ATP to Consider Checking Horizon
Hello SAP Experts,
I am a novice to GATP functionality. I have one scenario tried to work on it and Standard SAP system doesn't seem to work this way.
Rules based ATP for location Determination is used for order confirmation.
Loc A Mat 1 500 Pcs
Loc B Mat 1 200 Pcs
Rule 1 LocA --> Loc B
Order comes in for Mat 1 at location A for 1000 Pcs and confirmation was given for 700 Pcs out of which 200 Pcs will be sourced from Loc B. I'm trying to confirm remaining 300 at the end of Checking horizon as per Customer requirement. Please suggest a way to acheive this.
Regards,
PriyankaHi,
You will start from ECC, Material master MRP3 view MARC-WZEIT Total replenishment lead time (in workdays).
In APO , SPRO--GATP-Maintain check control - make sure that ATP group and business event example 01 and A should have "consider Checking horizon" .
RLT from R3 will become Checking horizon in product master in APO. In APO product master ATP tab CHKHOR is the field name.
Make sure that in the rules -- calculation profile -allowed delay is not maintained or should not be less than RLT /Checking horizon.
Thanks,
Pavan Verma -
Questions on Rules-Based ATP and Purchase Requisitions for STOs
Hello experts,
We are working on rules-based ATP configuration and have several questions about the functionality. Iu2019m hoping that some of you are using this functionality and can help give us direction.
In our environment we have multiple distribution centers and multiple manufacturing plants. We want to confirm sales orders against stock and production orders in any of those plants, depending on the locations that have stock or planned production. For example, we will place a sales order against plant A. If there is not enough stock in plant A then rules-based ATP will use location determination to check in plant B, then C. The scope of check on the ATP check will include stock and released production orders. We will configure plant A as the u201Cconsolidation locationu201D so if stock is found in plants B or C then stock transport orders will automatically be created to move the stock to plant A before shipping to the customer.
We have configured rules-based ATP and this functionality is working well in our Development system. The ATP check is executed and uses the rules-based ATP to find eligible stock in other plants. The system is also creating purchase requisitions to move the stock to the consolidation plant.
Our first concern is that there doesnu2019t appear to be any firm linkage between the sales order and the resulting purchase requisition. For example, if we create sales order 123 for plant A and the rules-based ATP finds stock in plant B it automatically creates a purchase requisition 987 to move the stock from plant B to plant A. However, there doesnu2019t appear to be a linkage between sales order 123 and purchase requisition 987. For instance, if we delete sales order 123 the purchase requisition doesnu2019t get deleted.
Our second concern is that the quantity on the purchase requisition can still be confirmed against later sales orders. For example, say the above scenario resulted in a purchase requisition 987 that consumed all the stock available in plant B. We then create a second sales order 456 for the same product. Plant A is out of stock so the rules-based ATP looks in plant B. We would expect that plant B would also not have any stock because itu2019s all been consumed by the purchase requisition. Instead, the system creates a second purchase requisition to move quantity from plant B to plant A. Itu2019s as if the system doesnu2019t realize that the purchase requisition 987 is already planning to move stock out of plant B.
Does anyone have any thoughts or suggestions on these two scenarios? Is there a way to configure the system so there is a hard linkage between the sales order and the purchase requisition so that if the sales order is deleted then the purchase requisition is also deleted? Should ATP realize that purchase orders are consuming inventory and not allow later sales orders to confirm against that same inventory? Any advice or experience would be greatly appreciated.
Thanks,
David Eady
Application Delivery Team Lead
Propex, Inc.Hi,
The scheduling is done in SCM, and from there, whenever the RBA is triggered, the calculation is done always with the old route in SCM. Until you get back to R/3 this is when your route is determined. But the ATP check is always with the original route. So the idea would be that you change the values of the route while still in APO, this is possible via the user exit. Should be done in scheduling in APO.
Hope this information is helpful.
Regards,
Tibor -
Dynamic Rule based implementation in PL/SQL
Hi,
We are trying to implement a dynamic rule based application in Oracle 9i. Its simple logic where we store expressions as case statments and actions seperated by commas as follows.
Rule: 'Age > 18 and Age <65'
True Action: 'Status = ''Valid'' , description = ''age in range'''
False Action: 'Status =''Invalid'', Description=''Age not in range'''
Where Age,Status, description are all part of one table.
One way of implementing this is fire rule for each record in the table and then based on true or false call action as update.
i.e
select (case when 'Age > 18 and Age <65' then 1 else 0 end) age_rule from tableX
(above query will in in a cursor xcur)
Then we search for
if age_rule = 1 then
update tablex set Status = ''Valid'' , description = ''age in range'' where id=xcur.id;
else
update tablex set Status =''Invalid'', Description=''Age not in range'' where id=xcur.id;
end if;
This method will result in very slow performance due to high i/o. We want to implement this in collection based method.
Any ideas on how to dynamically check rules and apply actions to collection without impact on performance. (we have nearly 3million rows and 80 rules to be applied)
Thanks in advanceReturning to your original question, first of all, there is a small flaw in the requirements, because if you apply all the rules to the same table/cols, than the table will have results of only last rule that was processed.
Suppose rule#1:
Rule: 'Age > 18 and Age <65'
True Action: 'Status = ''Valid'' , description = ''age in range'''
False Action: 'Status =''Invalid'', Description=''Age not in range'''
and Rule#2:
Rule: 'Name like ''A%'''
True Action: 'Status = 'Invalid'' , description = ''name begins with A'''
False Action: 'Status =''Invalid'', Description=''name not begins with A'''
Then after applying of rule#1 and rule#2, results of the rule#1 will be lost, because second rule will modify the results of the first rule.
Regarding to using collections instead of row by row processing, I think that a better approach would be to move that evaluating cursor inside an update statement, in my tests this considerably reduced processed block count and response time.
Regarding to the expression filter, even so, that you are not going to move to 10g, you still can test this feature and see how it is implemented, to get some ideas of how to better implement your solution. There is a nice paper http://www-db.cs.wisc.edu/cidr2003/program/p27.pdf that describes expression filter implementation.
Here is my example of two different methods for expression evaluation that I've benchmarked, first is similar to your original example and second is with expression evaluation moved inside an update clause.
-- fist create two tables rules and data.
drop table rules;
drop table data;
create table rules( id number not null primary key, rule varchar(255), true_action varchar(255), false_action varchar(255) );
create table data( id integer not null primary key, name varchar(255), age number, status varchar(255), description varchar(255) );
-- populate this tables with information.
insert into rules
select rownum id
, 'Age > '||least(a,b)||' and Age < '||greatest(a,b) rule
, 'Status = ''Valid'', description = ''Age in Range''' true_action
, 'Status = ''Invalid'', description = ''Age not in Range''' false_action
from (
select mod(abs(dbms_random.random),60)+10 a, mod(abs(dbms_random.random),60)+10 b
from all_objects
where rownum <= 2
insert into data
select rownum, object_name, mod(abs(dbms_random.random),60)+10 age, null, null
from all_objects
commit;
-- this is method #1, evaluate rule against every record in the data and do the action
declare
eval number;
id number;
data_cursor sys_refcursor;
begin
execute immediate 'alter session set cursor_sharing=force';
for rules in ( select * from rules ) loop
open data_cursor for 'select case when '||rules.rule||' then 1 else 0 end eval, id from data';
loop
fetch data_cursor into eval, id;
exit when data_cursor%notfound;
if eval = 1 then
execute immediate 'update data set '||rules.true_action|| ' where id = :id' using id;
else
execute immediate 'update data set '||rules.false_action|| ' where id = :id' using id;
end if;
end loop;
end loop;
end;
-- this is method #2, evaluate rule against every record in the data and do the action in update, not in select
begin
execute immediate 'alter session set cursor_sharing=force';
for rules in ( select * from rules ) loop
execute immediate 'update data set '||rules.true_action|| ' where id in (
select id
from (
select case when '||rules.rule||' then 1 else 0 end eval, id
from data
where eval = 1 )';
execute immediate 'update data set '||rules.false_action|| ' where id in (
select id
from (
select case when '||rules.rule||' then 1 else 0 end eval, id
from data
where eval = 0 )';
end loop;
end;
Here are SQL_TRACE results for method#1:
call count cpu elapsed disk query current rows
Parse 37 0.01 0.04 0 0 0 0
Execute 78862 16.60 17.50 0 187512 230896 78810
Fetch 78884 3.84 3.94 2 82887 1 78913
total 157783 20.46 21.49 2 270399 230897 157723
and this is results for method#2:
call count cpu elapsed disk query current rows
Parse 6 0.00 0.00 0 0 0 0
Execute 6 1.93 12.77 0 3488 170204 78806
Fetch 1 0.00 0.00 0 7 0 2
total 13 1.93 12.77 0 3495 170204 78808
You can compare this two methods using SQL_TRACE. -
Document rule based classification
from the example in oracle text developers guide i tried to build a rule based document classification, using the code given below:
create or replace package classifier as
procedure this;
end;
show errors
create or replace package body classifier as
procedure this
is
v_document blob;
v_item number;
v_doc number;
begin
for doc in (select document_id, content from documents)
loop
v_document :=doc.content;
v_item:=0;
v_doc:=doc.document_id;
for c in (select category_id, category_name from docs_cats_rule_based_class
where matches(query,v_document)>0)
loop
v_item:=v_item +1;
insert into doc_cat_rule_based_class values (doc.document_id, category_id);
end loop;
end loop;
end this;
end;
show errors
exec classifier.this
this gives the following errors:
package classifier Compiled.
line 5: SQLPLUS Command Skipped: show errors
package body Compiled.
line 32: SQLPLUS Command Skipped: show errors
Error starting at line 33 in command:
exec classifier.this
Error report:
ORA-04063: package body "STARDOC.CLASSIFIER" has errors
ORA-06508: PL/SQL: could not find program unit being called: "STARDOC.CLASSIFIER"
ORA-06512: at line 1
i think i am missing some grant to package. please help!What version of Oracle are you using? Did you create the required tables and index in the earlier steps? What did you run it from? It appears that you did not run it from SQL*Plus. Please see the following demonstration that shows that it works fine on Oracle 10g when run from SQL*Plus with minimal privileges. I did not use any data.
SCOTT@10gXE> CREATE USER stardoc IDENTIFIED BY stardoc
2 /
User created.
SCOTT@10gXE> GRANT CONNECT, RESOURCE TO stardoc
2 /
Grant succeeded.
SCOTT@10gXE> CONNECT stardoc/stardoc
Connected.
STARDOC@10gXE>
STARDOC@10gXE> create table news_table
2 (tk number primary key not null,
3 title varchar2(1000),
4 text clob)
5 /
Table created.
STARDOC@10gXE> create table news_categories
2 (queryid number primary key not null,
3 category varchar2(100),
4 query varchar2(2000))
5 /
Table created.
STARDOC@10gXE> create table news_id_cat
2 (tk number,
3 category_id number)
4 /
Table created.
STARDOC@10gXE> create index news_cat_idx on news_categories (query)
2 indextype is ctxsys.ctxrule
3 /
Index created.
STARDOC@10gXE> create or replace package classifier
2 as
3 procedure this;
4 end classifier;
5 /
Package created.
STARDOC@10gXE> show errors
No errors.
STARDOC@10gXE> create or replace package body classifier
2 as
3 procedure this
4 is
5 v_document clob;
6 v_item number;
7 v_doc number;
8 begin
9 for doc in (select tk, text from news_table)
10 loop
11 v_document := doc.text;
12 v_item := 0;
13 v_doc := doc.tk;
14 for c in
15 (select queryid, category from news_categories
16 where matches (query, v_document) > 0)
17 loop
18 v_item := v_item + 1;
19 insert into news_id_cat values (doc.tk,c.queryid);
20 end loop;
21 end loop;
22 end this;
23 end classifier;
24 /
Package body created.
STARDOC@10gXE> show errors
No errors.
STARDOC@10gXE> exec classifier.this
PL/SQL procedure successfully completed.
STARDOC@10gXE> -
Re: Oracle 8i (8.1.7.4) Rule based v/s Cost based
Hi,
I would like to know the advantages/disadvantages of using RULE based optimizer v/s COST based optimizer in Oracle 8i. We have a production RULE based database and are experiencing performance issues on some queries sporadically.
TKPROF revealed:
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 3 94.67 2699.16 1020421 5692711 51404 0
Fetch 13 140.93 4204.41 688482 4073366 0 26896
total 16 235.60 6903.57 1708903 9766077 51404 26896
Please post your expert suggestions as soon as possible.
Thanks and Regards,
AI think the answer you are looking for is that Rule Based optimizer is predictive, but Cost Based optimizer results may vary depending on statistics of rows, indexes, etc. But at the same time, you can typically get better speed for OLTP relational databases with CBO, assuming you have correct statistics, and correct optimizer settings set.
-
Improving performace for a Rule Based Optimizer DB
Hi,
I am looking for information on improving the current performance of an ancient 35GB Oracle 7.3.4 using RULE based optimizer mode. It is using 160 MB SGA and the physical memory on the system is 512MB RAM.
As of now, all the major tasks which take time, are run after peak hours so that the 130 user sessions are not affected significantly.
But recently am told some procedures take too long to execute ( procedure has to do with truncating tables and re-populating data into it ) and I do see 54% of the pie chart for WAITS are for "sequential reads" followed by "scattered reads" of 36%. There are a couple of large tables of around 4GB in this DB.
Autotrace doesn't help me much in terms of getting an explain plan of slow queries since COST option doesnt show up and am trying to find ways of improving the performance of DB in general.
Apart from the "redo log space requests" which I run into frequently (which btw is something I am trying to resolve ..thanks to some of you) I dont see much info on exactly how to proceed.
Is there any info that I can look towards in terms of improving performance on this rule based optimizer DB ? Or is identifying the top sql's in terms of buffer gets the only way to tune ?
Thank you for any suggestions provided.Thanks Hemant.
This is for a 15 minute internal under moderate load early this morning.
Statistic Total Per Transact Per Logon Per Second
CR blocks created 275 .95 5.19 .29
Current blocks converted fo 10 .03 .19 .01
DBWR buffers scanned 74600 258.13 1407.55 78.44
DBWR free buffers found 74251 256.92 1400.96 78.08
DBWR lru scans 607 2.1 11.45 .64
DBWR make free requests 607 2.1 11.45 .64
DBWR summed scan depth 74600 258.13 1407.55 78.44
DBWR timeouts 273 .94 5.15 .29
OS Integral shared text siz 1362952204 4716097.59 25716079.32 1433177.92
OS Integral unshared data s 308759380 1068371.56 5825648.68 324668.12
OS Involuntary context swit 310493 1074.37 5858.36 326.49
OS Maximum resident set siz 339968 1176.36 6414.49 357.48
OS Page faults 3434 11.88 64.79 3.61
OS Page reclaims 6272 21.7 118.34 6.6
OS System time used 19157 66.29 361.45 20.14
OS User time used 195036 674.87 3679.92 205.09
OS Voluntary context switch 21586 74.69 407.28 22.7
SQL*Net roundtrips to/from 16250 56.23 306.6 17.09
SQL*Net roundtrips to/from 424 1.47 8 .45
background timeouts 646 2.24 12.19 .68
bytes received via SQL*Net 814224 2817.38 15362.72 856.18
bytes received via SQL*Net 24470 84.67 461.7 25.73
bytes sent via SQL*Net to c 832836 2881.79 15713.89 875.75
bytes sent via SQL*Net to d 42713 147.8 805.91 44.91
calls to get snapshot scn: 17103 59.18 322.7 17.98
calls to kcmgas 381 1.32 7.19 .4
calls to kcmgcs 228 .79 4.3 .24
calls to kcmgrs 20845 72.13 393.3 21.92
cleanouts and rollbacks - c 86 .3 1.62 .09
cleanouts only - consistent 40 .14 .75 .04
cluster key scan block gets 1051 3.64 19.83 1.11
cluster key scans 376 1.3 7.09 .4
commit cleanout failures: c 18 .06 .34 .02
commit cleanout number succ 2406 8.33 45.4 2.53
consistent changes 588 2.03 11.09 .62
consistent gets 929408 3215.94 17536 977.3
cursor authentications 1746 6.04 32.94 1.84
data blocks consistent read 588 2.03 11.09 .62
db block changes 20613 71.33 388.92 21.68
db block gets 40646 140.64 766.91 42.74
deferred (CURRENT) block cl 668 2.31 12.6 .7
dirty buffers inspected 3 .01 .06 0
enqueue conversions 424 1.47 8 .45
enqueue releases 1981 6.85 37.38 2.08
enqueue requests 1977 6.84 37.3 2.08
execute count 20691 71.6 390.4 21.76
free buffer inspected 2264 7.83 42.72 2.38
free buffer requested 490899 1698.61 9262.25 516.19
immediate (CR) block cleano 126 .44 2.38 .13
immediate (CURRENT) block c 658 2.28 12.42 .69
logons cumulative 53 .18 1 .06
logons current 1 0 .02 0
messages received 963 3.33 18.17 1.01
messages sent 963 3.33 18.17 1.01
no work - consistent read g 905734 3134.03 17089.32 952.4
opened cursors cumulative 2701 9.35 50.96 2.84
opened cursors current 147 .51 2.77 .15
parse count 2733 9.46 51.57 2.87
physical reads 490258 1696.39 9250.15 515.52
physical writes 2265 7.84 42.74 2.38
recursive calls 37296 129.05 703.7 39.22
redo blocks written 5222 18.07 98.53 5.49
redo entries 10575 36.59 199.53 11.12
redo size 2498156 8644.14 47135.02 2626.87
redo small copies 10575 36.59 199.53 11.12
redo synch writes 238 .82 4.49 .25
redo wastage 104974 363.23 1980.64 110.38
redo writes 422 1.46 7.96 .44
rollback changes - undo rec 1 0 .02 0
rollbacks only - consistent 200 .69 3.77 .21
session logical reads 969453 3354.51 18291.57 1019.4
session pga memory 35597936 123176.25 671659.17 37432.11
session pga memory max 35579576 123112.72 671312.75 37412.8
session uga memory 2729196 9443.58 51494.26 2869.82
session uga memory max 20580712 71213.54 388315.32 21641.13
sorts (memory) 1091 3.78 20.58 1.15
sorts (rows) 12249 42.38 231.11 12.88
table fetch by rowid 57246 198.08 1080.11 60.2
table fetch continued row 111 .38 2.09 .12
table scan blocks gotten 763421 2641.6 14404.17 802.76
table scan rows gotten 13740187 47543.9 259248.81 14448.15
table scans (long tables) 902 3.12 17.02 .95
table scans (short tables) 4614 15.97 87.06 4.85
total number commit cleanou 2489 8.61 46.96 2.62
transaction rollbacks 1 0 .02 0
user calls 15266 52.82 288.04 16.05
user commits 289 1 5.45 .3
user rollbacks 23 .08 .43 .02
write requests 331 1.15 6.25 .35Wait Events :
Event Name Count Total Time Avg Time
SQL*Net break/reset to client 7 0 0
SQL*Net message from client 16383 0 0
SQL*Net message from dblink 424 0 0
SQL*Net message to client 16380 0 0
SQL*Net message to dblink 424 0 0
SQL*Net more data from client 1 0 0
SQL*Net more data to client 24 0 0
buffer busy waits 169 0 0
control file sequential read 55 0 0
db file scattered read 74788 0 0
db file sequential read 176241 0 0
latch free 6134 0 0
log file sync 225 0 0
rdbms ipc message 10 0 0
write complete waits 4 0 0I did enable the timed_stats for the session but dont know why the times are 0's. Since I cant bounce the instance until weekend, cant enable the parameter in init.ora as well. -
Partitioning on Oracle 8i (Rule Based vs. Cost Based)
At my current engagement, we are using Oracle Financials 11.0.3 on Oracle 8.0.6. The application uses rule-based optimizer. The client wants to implement Oracle partitioning. With this in mind, we are concerned about possible performance issues that the implementation of partitioning may cause since RBO does not recognize it.
We agree that the RBO will see a non-partitioned table the same as a partitioned. In this scenario where you gain the most is with backup/recoverability and general maintenance of the partitioned table.
Nevertheless, we have a few questions:
When implementing partitions, will the optimizer choose to go with Cost base vs. Rule base for these partitioned tables?
Is it possible that the optimizer might get confused with this?
Could it degrade performance at the SQL level?
If this change from RBO to CBO does occur, the application could potential perform poorly because of the way it has been written.
Please provide any feedback.
Thanks in advance.If the CBO is invoked when accessing these tables, you may run into problems.
- You'll have to analyze your tables & ensure that the statistics are kept up to date.
- It's possible that any SQL statements which invoke the CBO rather than the RBO will have different performance characteristics. The SYSTEM data dictionary tables, for example, must use the RBO or their performance suffers dramatically. Most of the time, the CBO beats the RBO, but applications which have been heavily tuned with the RBO may have problems with the CBO.
- Check your init.ora to see what optimizer mode you're in. If you're set to CHOOSE, the CBO will be invoked whenever statistics are available on the table(s) involved. If you choose RULE, you'll only invoke the CBO when the RBO encounters situations it doesn't have rules for.
Justin -
Dynamic, rules based security
My organization has an application that needs a very fine grained scurity model, that changes very often and is based upon a rules machnisem (written in PL/SQL). Is there a way to combine a rule based mechanism with the internal ACL mechanism of the iFS ?
nullHi Harvey_SO,
According to your description, you get the security ignored when using custom dynamic role-based security. Right?
In Analysis Services, it has some role overlapping scenarios, if two roles used to secure attributes in two different dimensions, which might both apply to some users simultaneously, it can cause the user has no security applied from either role. Please
refer to workarounds in the link below:
The Additive Design of SSAS Role Security
If you have any question, please feel free to ask.
Best Regards,
Simon Hou
TechNet Community Support
Maybe you are looking for
-
Hi everyone: We have implemented SAP NetWeaver 7.0, and we defined "ABAP System" as Data Source. We've come across a strange error while selecting some particular users (clicking on user) in Netweaver under User Management -> Identity Management > Se
-
Question on updating a table based on report data
Hi all, I am building a new stock request form for our site and I have a report that provides a listing of all requests that have a status of pending based on supv_approve flag being Null. I want to be able to update the table BGNA_NEW_STOCK_REQUESTS
-
How to interface SC-HT800v Panasonic Home Theater with New Samsung LED/LCD 6500 series TV
I don't see how the 14 pin cable coming out of the subwoofer will connect to the new TV or our new Blue Ray player Samsung BD-C5500. We currently have no receiver since that was in the Panasonic VCR/DVD that we have abandoned. Can you confirm this
-
Xpath expression in condition editor
Hi Expert Forum ! I have an xml structure like this : <aaa> <bbb> <ccc> </ccc> </bbb> </aaa> In my condition editor (receiver determination) I want to refer to an element which is a child of node <ccc>. However, node ccc is not defined in
-
How to clear libary from unused elements in Captivate 4
I have a big software presentation with some unused elements in the Libary. How can I clear the Libary from these unused elements? I didn't find this in Captivate 4. Please help me. In the last week the presentation often shut down. Perhaps it will b