Gurus, Provide your inputs - Query Tuning
HI All,
This Query is taking lot of time to execute.
IS it possible to tune this Query,
Let i summarize record counts of each of the table.
Actual Query:
SELECT COUNT (1)
FROM cust c, udf u
WHERE c.cust_id = 1000
AND NOT EXISTS (
SELECT 1
FROM HIER
WHERE h.cust_id = 1000
AND h.code = c.code and rownum=1)
AND u.cust_id = 1000
AND u.en_id = 'AAA123'
AND u.udf_id = '26U2'
AND u.code = c.code
AND u.VALUE = 'No'
There is an unique index on cust(cust_id,code)
Also an unique index on udf(cust_id,en_id,udf_id,code)
Actual Record Count:
select count(*) from udf
59574710
select count(*) from cust
3034410
select count(*) from hier
258780
select count(*) from cust
where cust_id=1241
1292391
select count(*) from udf
where cust_id=1241
25400487
Do i need to add any hints to enhance the performance?
Please give your comments.
Please see the following threads for advice and required information.
Please use code tags to preserve formatting.
How to post a sql tuning request:- HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long:- When your query takes too long ...
Edited by: DomBrooks on Feb 19, 2010 10:09 AM
Edited by: DomBrooks on Feb 19, 2010 10:11 AM
Similar Messages
-
Regarding getConnection Method - Please provide your inputs.
Hello,
I am trying to use the getconnection method to check the Oracle database connection -
and getting the following error - 'Network Adapter could not establish connection'
Below is the code. Please provide your inputs. Thanks in advance.
<block trace='true'>
<invoke name='getConnection' class='com.waveset.util.JdbcUtil'>
<map>
<s>type</s>
<s>Oracle</s>
<s>datasource</s>
<s>jdbc/SampleDataSourceName</s>
<s>driverClass</s>
<s>oracle.jdbc.driver.OracleDriver</s>
<s>url</s>
<s>jdbc:oracle:thin:@<HOSTNAME>:<PORT>:<DATABASE></s>
<s>host</s>
<s><HOSTNAME></s>
<s>database</s>
<s><DATABASE></s>
<s>port</s>
<s><PORT></s>
<s>user</s>
<s><USER></s>
<s>password</s>
<s><PASSWORD></s>
<s>useConnectionPool</s>
<s>true</s>
</map>
</invoke>
</block>Error:-Network Adapter could not establish connection thrown by adapter normally when source IP does not have access to destination IP (ie firewall ports or blocked due to security reasons ..plz check with network admin at destination ..this could be fix to your porblem
-
Provide your input for new Manufacturing analytics app
Oracle BI needs your help! We are working on a new analytics application specifically for Manufacturing Operations and we need input from people in those roles. If you are an Operations VP, a Cost Accountant, an Operations Manager or any type of role along those lines we would be grateful if you filled out a quick survey (5-10 minutes) to help us gauge your wants and needs from business analytics. If you know someone who might fit this role, please pass this message along.
Link to survey: https://www.oraclesurveys.com/se.ashx?s=705E3EFC1BAE4B1F
You will be directly impacting the design of this application and we greatly appreciate your help! If you have any questions or concerns please feel free to email me: [email protected]
Sincerely,
Chloe Schulze
Oracle BI User ExperienceDuplicate post -- Provide your input for new Manufacturing analytics app
-
Midi gurus need your input please
Hey guys,
My question seems quite simple, but I'm just making sure I'm not doing something that's gonna cause issues.
The setup.
MOTU 828MkII (has 1 in 1 out midi)
M-Audio 88es controller (just midi out)
Mackie Universal Controller (1 each)
Mackie Extender controller (1 each)
Mackie C6 (1 each)
considering the above setup, I need to get them all hooked up right to Logic. Do I simply get a MOTU MIDI Express XT USB, or ????
Can I just daisy chain them? (out the m-daudio, into the MUC, out that to MEC, out that to MC6, out that to 828 which is connected via firewire to Mac) If so is there a drawback?
I'm not too up and up on how to best get midi hooked and performing right, so any help would be greatly appreciated. I just got the Mackie stuff, so I am a bit baffled by what the best way to connect things is. Mackie recommends some kind of Midi 'patch bay', but before I drop another couple hundred bucks wanted to make sure I needed to and am doing it right.
Thanks
RIf you can find a used Unitor 8mk2.. get it. maybe there is one on ebay.
They work really well with Logic.
I also have a motu midi timepiece that works well.
Both have SMPTE ins.
The other guys are correct, you need a separate port for each piece of control surface.
So a multi-port midi interface is what is needed. The models I mantion have smpte (LTC) as well. -
Query Tuning! - Need your help
Hi Guys,
I have got a problem in Query Tuning.
I have a query, in which I am accesing tables from different users. Example:
2 tables are from my own schema, 3 tables from other users and 3 tables from yet another user.
I am using DISTINCT on this select statement. The 1st two columns in teh select list are concatenated with each other.
There is yet another select in the from clause to get few other records from other tables.
Thee query returns 163 records and takes around 14 seconds.
I referred PLAN_TABLE, its showing NESTED LOOPS and CARTESIAN JOIN in the SORT OPERATION.
Can anyone of you please suggest areas where I can concentrate?
Thanks in advance
Himanshu DabirDISTINCT always do an inherent sort.
SQL> EXPLAIN PLAN FOR
2 SELECT DISTINCT principal_due,outstand_balance
3 FROM outstanding_ledger
4 WHERE dnum=1030003931
5 /
Explained.
SQL> SET LINE 200
SQL> SELECT * FROM TABLE(dbms_xplan.display)
2 /
PLAN_TABLE_OUTPUT
Plan hash value: 1765098853
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 17 | 272 | 1 (100)| 00:00:01 |
| 1 | SORT UNIQUE | | 17 | 272 | 1 (100)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID| OUTSTANDING_LEDGER | 17 | 272 | | |
|* 3 | INDEX SKIP SCAN | DLINE_COM_DDATE_DNUM_PK | 17 | | | |
PLAN_TABLE_OUTPUT
Predicate Information (identified by operation id):
3 - access("DNUM"=1030003931)
filter("DNUM"=1030003931)
16 rows selected.
SQL> DELETE plan_table
2 /
4 rows deleted.
SQL> commit
2 /
Commit complete.
SQL> EXPLAIN PLAN FOR
2 SELECT principal_due,outstand_balance
3 FROM outstanding_ledger
4 WHERE dnum=1030003931
5 /
Explained.
SQL> SELECT * FROM TABLE(dbms_xplan.display)
2 /
PLAN_TABLE_OUTPUT
Plan hash value: 3157896501
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
| 0 | SELECT STATEMENT | | 17 | 272 | 0 (0)|
| 1 | TABLE ACCESS BY INDEX ROWID| OUTSTANDING_LEDGER | 17 | 272 | |
|* 2 | INDEX SKIP SCAN | DLINE_COM_DDATE_DNUM_PK | 17 | | |
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
2 - access("DNUM"=1030003931)
filter("DNUM"=1030003931)
15 rows selected.
SQL>
Can anyone of you please suggest areas where I can concentrate?Paste yours plan with updated stats.
Khurram -
This is my first post in this forum regarding query tuning, so my sincere apologies in advance if I have:
1) not included sufficient information,
2) included too much information,
3) not posted to the correct forum
I read through Randolf Geist's web page on instructions to post a query tuning request
and attempted to follow it as closely as possible.
I am attempting to figure out where a view I have constructed can be optimized.
It takes approx. 45 seconds to 1 minute to run; I would like to cut that down to 10 seconds if possible.
The view itself is somewhat complex; I will post the actual code if it will help you help me. Please advise.
I was under the impression that posting the code was not necessary, but if it is, let me know and I will post it.
I have been doing SQL development for a few years, but only recently in Oracle.
I have no experience in looking through the following output and being able to tell where I can improve performance,
so this will be a learning experience for me. Thanks in advance for your help - I appreciate it.
Some additional information - my view is based on tables over which I have no control - it is a third-party application
which I do reporting from. I do have the freedom to create indexes on columns within the tables if necessary.
The statement is simply
SELECT * FROM LLU_V_PRODUCTION_DETAIL_03
which is the name of my view.
here's all the information I've been able to retrieve by following Randolf's instructions:
Oracle version is 10.2.0.1.0 - 64bit
Here are optimizer parameters:
NAME TYPE VALUE
user_dump_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN
\AXIUMPRODUCTION\UDUMP
NAME TYPE VALUE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10.2.0.1
optimizer_index_caching integer 90
optimizer_index_cost_adj integer 20
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
NAME TYPE VALUE
db_file_multiblock_read_count integer 16
NAME TYPE VALUE
db_block_size integer 8192
NAME TYPE VALUE
cursor_sharing string EXACT
SNAME PNAME PVAL1 PVAL2
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 10-29-2005 01:36
SYSSTATS_INFO DSTOP 10-29-2005 01:36
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 1298.56584
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.Here is the output of EXPLAIN PLAN:
PLAN_TABLE_OUTPUT
Plan hash value: 662813077
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 23M| 53G| | 62330 (2)| 00:12:28 |
| 1 | VIEW | LLU_V_PRODUCTION_DETAIL_03 | 23M| 53G| | 62330 (2)| 00:12:28 |
| 2 | UNION-ALL | | | | | | |
|* 3 | HASH JOIN | | 18M| 5062M| | 1525 (10)| 00:00:19 |
| 4 | VIEW | index$_join$_007 | 1725 | 25875 | | 4 (25)| 00:00:01 |
|* 5 | HASH JOIN | | | | | | |
| 6 | INDEX FAST FULL SCAN | USERS_PRIMARY | 1725 | 25875 | | 1 (0)| 00:00:01 |
| 7 | INDEX FAST FULL SCAN | USERS_PRODUCER | 1725 | 25875 | | 2 (0)| 00:00:01 |
|* 8 | HASH JOIN | | 416K| 105M| | 1399 (2)| 00:00:17 |
| 9 | TABLE ACCESS FULL | PRODUCER | 1396 | 118K| | 24 (0)| 00:00:01 |
|* 10 | HASH JOIN | | 29819 | 5183K| | 1372 (2)| 00:00:17 |
| 11 | TABLE ACCESS FULL | CLASS | 20 | 1660 | | 3 (0)| 00:00:01 |
|* 12 | TABLE ACCESS FULL | QR_PRODUCTION | 149K| 13M| | 1367 (2)| 00:00:17 |
|* 13 | FILTER | | | | | | |
|* 14 | HASH JOIN | | 16M| 5651M| | 32983 (2)| 00:06:36 |
| 15 | VIEW | index$_join$_014 | 1725 | 25875 | | 4 (25)| 00:00:01 |
|* 16 | HASH JOIN | | | | | | |
| 17 | INDEX FAST FULL SCAN | USERS_PRIMARY | 1725 | 25875 | | 1 (0)| 00:00:01 |
| 18 | INDEX FAST FULL SCAN | USERS_PRODUCER | 1725 | 25875 | | 2 (0)| 00:00:01 |
|* 19 | HASH JOIN | | 149K| 49M| | 32874 (1)| 00:06:35 |
| 20 | TABLE ACCESS FULL | CLASS | 20 | 1660 | | 3 (0)| 00:00:01 |
|* 21 | HASH JOIN | | 149K| 37M| | 32870 (1)| 00:06:35 |
| 22 | TABLE ACCESS FULL | PRODUCER | 1396 | 118K| | 24 (0)| 00:00:01 |
|* 23 | HASH JOIN | | 222K| 37M| 12M| 32844 (1)| 00:06:35 |
| 24 | TABLE ACCESS FULL | PATIENT | 188K| 10M| | 6979 (1)| 00:01:24 |
|* 25 | HASH JOIN | | 222K| 24M| | 23860 (2)| 00:04:47 |
|* 26 | TABLE ACCESS FULL | PROCEDUR | 888 | 44400 | | 11 (0)| 00:00:01 |
|* 27 | TABLE ACCESS FULL | TRX | 442K| 28M| | 23845 (2)| 00:04:47 |
|* 28 | TABLE ACCESS FULL | USERS | 1 | 11 | | 55 (0)| 00:00:01 |
| 29 | NESTED LOOPS | | 1 | 473 | | 25798 (1)| 00:05:10 |
| 30 | NESTED LOOPS | | 1 | 413 | | 25797 (1)| 00:05:10 |
| 31 | NESTED LOOPS | | 1 | 398 | | 25796 (1)| 00:05:10 |
| 32 | NESTED LOOPS | | 1 | 390 | | 25795 (1)| 00:05:10 |
|* 33 | HASH JOIN | | 1 | 303 | | 25794 (1)| 00:05:10 |
| 34 | TABLE ACCESS FULL | LLU_EVALUATION_DESCRIPTIONS | 95 | 6175 | | 3 (0)| 00:00:01 |
|* 35 | HASH JOIN | | 4630 | 1076K| | 25791 (1)| 00:05:10 |
|* 36 | HASH JOIN | | 9607 | 1623K| | 23834 (1)| 00:04:47 |
| 37 | MERGE JOIN | | 888 | 91464 | | 13 (8)| 00:00:01 |
| 38 | TABLE ACCESS BY INDEX ROWID | CLASS | 20 | 1660 | | 1 (0)| 00:00:01 |
| 39 | INDEX FULL SCAN | CLASS_PRIMARY | 20 | | | 1 (0)| 00:00:01 |
|* 40 | SORT JOIN | | 888 | 17760 | | 12 (9)| 00:00:01 |
|* 41 | TABLE ACCESS FULL | PROCEDUR | 888 | 17760 | | 11 (0)| 00:00:01 |
|* 42 | TABLE ACCESS FULL | TRX | 19125 | 1307K| | 23820 (1)| 00:04:46 |
|* 43 | TABLE ACCESS FULL | GRADITEM | 655K| 40M| | 1952 (1)| 00:00:24 |
| 44 | TABLE ACCESS BY INDEX ROWID | PRODUCER | 1 | 87 | | 1 (0)| 00:00:01 |
|* 45 | INDEX UNIQUE SCAN | PRODUCER_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
|* 46 | TABLE ACCESS BY INDEX ROWID | GRADING | 1 | 8 | | 1 (0)| 00:00:01 |
|* 47 | INDEX UNIQUE SCAN | GRADING_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
| 48 | TABLE ACCESS BY INDEX ROWID | USERS | 221 | 3315 | | 1 (0)| 00:00:01 |
|* 49 | INDEX RANGE SCAN | USERS_PRODUCER | 1 | | | 1 (0)| 00:00:01 |
| 50 | TABLE ACCESS BY INDEX ROWID | PATIENT | 1 | 60 | | 1 (0)| 00:00:01 |
|* 51 | INDEX UNIQUE SCAN | PATIENT_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
| 52 | TABLE ACCESS BY INDEX ROWID | USERS | 109 | 1635 | | 1 (0)| 00:00:01 |
| 53 | NESTED LOOPS | | 1 | 438 | | 2023 (1)| 00:00:25 |
| 54 | NESTED LOOPS | | 1 | 423 | | 2022 (1)| 00:00:25 |
| 55 | NESTED LOOPS | | 1 | 363 | | 2021 (1)| 00:00:25 |
| 56 | NESTED LOOPS | | 1 | 276 | | 2020 (1)| 00:00:25 |
| 57 | NESTED LOOPS | | 1 | 193 | | 2019 (1)| 00:00:25 |
| 58 | NESTED LOOPS | | 1 | 185 | | 2018 (1)| 00:00:25 |
| 59 | NESTED LOOPS | | 1 | 173 | | 2017 (1)| 00:00:25 |
| 60 | NESTED LOOPS | | 1 | 140 | | 2016 (1)| 00:00:25 |
|* 61 | TABLE ACCESS FULL | GRADITEM | 317 | 23141 | | 1953 (2)| 00:00:24 |
|* 62 | TABLE ACCESS BY INDEX ROWID| TRX | 1 | 67 | | 1 (0)| 00:00:01 |
|* 63 | INDEX UNIQUE SCAN | TRX_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
|* 64 | TABLE ACCESS BY INDEX ROWID | TRX | 1 | 33 | | 1 (0)| 00:00:01 |
|* 65 | INDEX UNIQUE SCAN | TRX_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
|* 66 | TABLE ACCESS BY INDEX ROWID | GRADITEM | 1 | 12 | | 1 (0)| 00:00:01 |
|* 67 | INDEX RANGE SCAN | GRADITEM_ID | 19 | | | 1 (0)| 00:00:01 |
|* 68 | TABLE ACCESS BY INDEX ROWID | GRADING | 1 | 8 | | 1 (0)| 00:00:01 |
|* 69 | INDEX UNIQUE SCAN | GRADING_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
| 70 | TABLE ACCESS BY INDEX ROWID | CLASS | 1 | 83 | | 1 (0)| 00:00:01 |
|* 71 | INDEX UNIQUE SCAN | CLASS_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
| 72 | TABLE ACCESS BY INDEX ROWID | PRODUCER | 1 | 87 | | 1 (0)| 00:00:01 |
|* 73 | INDEX UNIQUE SCAN | PRODUCER_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
| 74 | TABLE ACCESS BY INDEX ROWID | PATIENT | 1 | 60 | | 1 (0)| 00:00:01 |
|* 75 | INDEX UNIQUE SCAN | PATIENT_PRIMARY | 1 | | | 1 (0)| 00:00:01 |
|* 76 | INDEX RANGE SCAN | USERS_PRODUCER | 1 | | | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
3 - access("QRP"."ProviderID"="U1"."Producer")
5 - access(ROWID=ROWID)
8 - access(TRIM("QRP"."ProviderID")=TRIM("P"."Producer"))
10 - access(TRIM("QRP"."axiUm_Discipline")=TRIM("CLASS"."Class"))
12 - filter("QRP"."ProviderID" IS NOT NULL AND "QRP"."Location"<'9990' AND "QRP"."ProcedureID"<>185 AND
"QRP"."PatientFirstName"<>'NON-PATIENT' AND ("QRP"."PatientFirstName"<>'TED' OR "QRP"."PatientLastName" NOT LIKE
'CAVENDER%'))
13 - filter( NOT EXISTS (SELECT 0 FROM AXIUM."USERS" "USERS" WHERE "Custom3"='YES' AND LNNVL("User"<>:B1)) OR
TO_CHAR(INTERNAL_FUNCTION("P"."EndDate"),'YYYY')<'2011' OR TRIM(TO_CHAR(INTERNAL_FUNCTION("P"."EndDate"),'YYYY')) IS
NULL OR "TRX"."Procedure"='A0021' OR "TRX"."Procedure"='A0022')
14 - access("TRX"."Producer"="U1"."Producer")
16 - access(ROWID=ROWID)
19 - access("PROC"."Discipline"="CLASS"."Class")
21 - access("TRX"."Producer"="P"."Producer")
23 - access("TRX"."Patient"="PAT"."Patient")
25 - access("TRX"."Procedure"="PROC"."Procedure")
26 - filter("PROC"."Discipline" IS NOT NULL)
27 - filter("TRX"."Deleted"=0 AND "TRX"."Status"='C' AND "TRX"."Procedure" NOT LIKE 'D0149%' AND
"TRX"."Procedure"<>'D5001C')
28 - filter("Custom3"='YES' AND LNNVL("User"<>:B1))
33 - access(TRIM(UPPER("GI"."QuestionText"))=TRIM(UPPER("LLU"."GRADITEM_QuestionText")) AND
TRIM(UPPER("GI"."Text"))=TRIM(UPPER("LLU"."GRADITEM_Text")) AND TRIM("TRX"."Procedure")=TRIM("LLU"."ProcedureCode"))
35 - access("TRX"."Type"="GI"."Type" AND "TRX"."Id"="GI"."Id" AND "TRX"."Treatment"="GI"."Treatment")
36 - access("TRX"."Procedure"="PROC"."Procedure")
40 - access("PROC"."Discipline"="CLASS"."Class")
filter("PROC"."Discipline"="CLASS"."Class")
41 - filter("PROC"."Discipline" IS NOT NULL)
42 - filter("TRX"."Grading"<>0 AND "TRX"."Deleted"=0 AND "TRX"."Status"='C')
43 - filter("GI"."Grading"<>0)
45 - access("TRX"."Producer"="P"."Producer")
46 - filter("G"."Deleted"=0)
47 - access("TRX"."Grading"="G"."Grading")
filter("G"."Grading"<>0 AND "G"."Grading"="GI"."Grading")
49 - access("TRX"."Producer"="U1"."Producer")
51 - access("TRX"."Patient"="PAT"."Patient")
61 - filter("GI"."IsHeading"=3 AND TRIM("GI"."QuestionText")='Comments' AND "GI"."Grading"<>0)
62 - filter("TRX"."Grading"<>0 AND "TRX"."Deleted"=0 AND "TRX"."Status"='C' AND ("TRX"."Procedure"='G1002' OR
"TRX"."Procedure"='G1003'))
63 - access("GI"."Type"="TRX"."Type" AND "GI"."Id"="TRX"."Id" AND "GI"."Treatment"="TRX"."Treatment")
64 - filter("TRX"."Grading"<>0 AND "TRX"."Deleted"=0 AND "TRX"."Status"='C' AND ("TRX"."Procedure"='G1002' OR
"TRX"."Procedure"='G1003') AND "TRX"."Grading"="TRX"."Grading")
65 - access("TRX"."Type"="TRX"."Type" AND "TRX"."Id"="TRX"."Id" AND "TRX"."Treatment"="TRX"."Treatment")
66 - filter("GI"."RelValue"<>0 AND "TRX"."Type"="GI"."Type" AND "TRX"."Treatment"="GI"."Treatment")
67 - access("TRX"."Id"="GI"."Id")
68 - filter("G"."Deleted"=0)
69 - access("TRX"."Grading"="G"."Grading")
filter("G"."Grading"<>0 AND "GI"."Grading"="G"."Grading")
71 - access("TRX"."Discipline"="CLASS"."Class")
73 - access("TRX"."Producer"="P"."Producer")
75 - access("TRX"."Patient"="PAT"."Patient")
76 - access("TRX"."Producer"="U1"."Producer")
138 rows selected.
Elapsed: 00:00:00.62
631015 rows selected.
Elapsed: 00:01:49.13Output from AUTOTRACE (I think)
NOTE: this post was too long for the forum, so I have removed a number of lines in the following output which appeared to be duplicating the above section (EXPLAIN PLAN).
Statistics
2657 recursive calls
0 db block gets
12734113 consistent gets
13499 physical reads
0 redo size
103697740 bytes sent via SQL*Net to client
69744 bytes received via SQL*Net from client
6312 SQL*Net roundtrips to/from client
76 sorts (memory)
0 sorts (disk)
631015 rows processedThe TKPROF output
select * from llu_v_production_detail_03
call count cpu elapsed disk query current rows
Parse 1 0.51 0.51 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 6312 88.09 98.01 13490 12733584 0 631015
total 6314 88.60 98.52 13490 12733584 0 631015
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 57
Rows Row Source Operation
631015 VIEW LLU_V_PRODUCTION_DETAIL_03 (cr=12733584 pr=13490 pw=0 time=92145592 us)
631015 UNION-ALL (cr=12733584 pr=13490 pw=0 time=91514573 us)
125485 HASH JOIN (cr=8099 pr=6396 pw=0 time=1523326 us)
1725 VIEW index$_join$_007 (cr=24 pr=0 pw=0 time=4777 us)
1725 HASH JOIN (cr=24 pr=0 pw=0 time=3051 us)
1725 INDEX FAST FULL SCAN USERS_PRIMARY (cr=7 pr=0 pw=0 time=50 us)(object id 55023)
1725 INDEX FAST FULL SCAN USERS_PRODUCER (cr=17 pr=0 pw=0 time=16 us)(object id 55024)
144513 HASH JOIN (cr=8075 pr=6396 pw=0 time=2326445 us)
1396 TABLE ACCESS FULL PRODUCER (cr=107 pr=0 pw=0 time=29 us)
144513 HASH JOIN (cr=7968 pr=6396 pw=0 time=2035684 us)
20 TABLE ACCESS FULL CLASS (cr=7 pr=0 pw=0 time=71 us)
151043 TABLE ACCESS FULL QR_PRODUCTION (cr=7961 pr=6396 pw=0 time=313553 us)
462685 FILTER (cr=10755862 pr=7094 pw=0 time=58570941 us)
466790 HASH JOIN (cr=145247 pr=7094 pw=0 time=11007301 us)
1725 VIEW index$_join$_014 (cr=24 pr=0 pw=0 time=6817 us)
1725 HASH JOIN (cr=24 pr=0 pw=0 time=5091 us)
1725 INDEX FAST FULL SCAN USERS_PRIMARY (cr=7 pr=0 pw=0 time=35 us)(object id 55023)
1725 INDEX FAST FULL SCAN USERS_PRODUCER (cr=17 pr=0 pw=0 time=19 us)(object id 55024)
485205 HASH JOIN (cr=145223 pr=7094 pw=0 time=10945107 us)
20 TABLE ACCESS FULL CLASS (cr=7 pr=0 pw=0 time=105 us)
507772 HASH JOIN (cr=145216 pr=7094 pw=0 time=11947534 us)
1396 TABLE ACCESS FULL PRODUCER (cr=107 pr=0 pw=0 time=18 us)
507772 HASH JOIN (cr=145109 pr=7094 pw=0 time=10924473 us)
188967 TABLE ACCESS FULL PATIENT (cr=31792 pr=0 pw=0 time=188998 us)
507772 HASH JOIN (cr=113317 pr=7094 pw=0 time=9652037 us)
895 TABLE ACCESS FULL PROCEDUR (cr=46 pr=0 pw=0 time=65 us)
509321 TABLE ACCESS FULL TRX (cr=113271 pr=7094 pw=0 time=5604567 us)
8548 TABLE ACCESS FULL USERS (cr=10610615 pr=0 pw=0 time=39053120 us)
42669 NESTED LOOPS (cr=507317 pr=0 pw=0 time=3686506 us)
42669 NESTED LOOPS (cr=421535 pr=0 pw=0 time=3217140 us)
45269 NESTED LOOPS (cr=301155 pr=0 pw=0 time=2449542 us)
45323 NESTED LOOPS (cr=210131 pr=0 pw=0 time=2134056 us)
45323 HASH JOIN (cr=119056 pr=0 pw=0 time=1635472 us)
95 TABLE ACCESS FULL LLU_EVALUATION_DESCRIPTIONS (cr=7 pr=0 pw=0 time=118 us)
98272 HASH JOIN (cr=119049 pr=0 pw=0 time=1446703 us)
46996 HASH JOIN (cr=109018 pr=0 pw=0 time=944857 us)
786 MERGE JOIN (cr=50 pr=0 pw=0 time=1528 us)
20 TABLE ACCESS BY INDEX ROWID CLASS (cr=4 pr=0 pw=0 time=99 us)
20 INDEX FULL SCAN CLASS_PRIMARY (cr=1 pr=0 pw=0 time=10 us)(object id 53850)
786 SORT JOIN (cr=46 pr=0 pw=0 time=750 us)
895 TABLE ACCESS FULL PROCEDUR (cr=46 pr=0 pw=0 time=18 us)
47196 TABLE ACCESS FULL TRX (cr=108968 pr=0 pw=0 time=805137 us)
696300 TABLE ACCESS FULL GRADITEM (cr=10031 pr=0 pw=0 time=277 us)
45323 TABLE ACCESS BY INDEX ROWID PRODUCER (cr=91075 pr=0 pw=0 time=414937 us)
45323 INDEX UNIQUE SCAN PRODUCER_PRIMARY (cr=45752 pr=0 pw=0 time=198709 us)(object id 54581)
45269 TABLE ACCESS BY INDEX ROWID GRADING (cr=91024 pr=0 pw=0 time=353081 us)
45270 INDEX UNIQUE SCAN GRADING_PRIMARY (cr=45753 pr=0 pw=0 time=173185 us)(object id 54088)
42669 TABLE ACCESS BY INDEX ROWID USERS (cr=120380 pr=0 pw=0 time=703786 us)
42669 INDEX RANGE SCAN USERS_PRODUCER (cr=46127 pr=0 pw=0 time=249186 us)(object id 55024)
42669 TABLE ACCESS BY INDEX ROWID PATIENT (cr=85782 pr=0 pw=0 time=407452 us)
42669 INDEX UNIQUE SCAN PATIENT_PRIMARY (cr=43098 pr=0 pw=0 time=198477 us)(object id 54370)
176 TABLE ACCESS BY INDEX ROWID USERS (cr=49426 pr=0 pw=0 time=1783886 us)
367 NESTED LOOPS (cr=49149 pr=0 pw=0 time=6159428 us)
190 NESTED LOOPS (cr=48953 pr=0 pw=0 time=409391 us)
190 NESTED LOOPS (cr=48569 pr=0 pw=0 time=407105 us)
190 NESTED LOOPS (cr=48185 pr=0 pw=0 time=404820 us)
191 NESTED LOOPS (cr=47991 pr=0 pw=0 time=410291 us)
193 NESTED LOOPS (cr=47603 pr=0 pw=0 time=422507 us)
193 NESTED LOOPS (cr=46979 pr=0 pw=0 time=416890 us)
193 NESTED LOOPS (cr=46396 pr=0 pw=0 time=414374 us)
14285 TABLE ACCESS FULL GRADITEM (cr=9602 pr=0 pw=0 time=85793 us)
193 TABLE ACCESS BY INDEX ROWID TRX (cr=36794 pr=0 pw=0 time=128427 us)
8218 INDEX UNIQUE SCAN TRX_PRIMARY (cr=28576 pr=0 pw=0 time=64353 us)(object id 54930)
193 TABLE ACCESS BY INDEX ROWID TRX (cr=583 pr=0 pw=0 time=2169 us)
193 INDEX UNIQUE SCAN TRX_PRIMARY (cr=390 pr=0 pw=0 time=918 us)(object id 54930)
193 TABLE ACCESS BY INDEX ROWID GRADITEM (cr=624 pr=0 pw=0 time=4840 us)
1547 INDEX RANGE SCAN GRADITEM_ID (cr=395 pr=0 pw=0 time=2910 us)(object id 54093)
191 TABLE ACCESS BY INDEX ROWID GRADING (cr=388 pr=0 pw=0 time=1887 us)
191 INDEX UNIQUE SCAN GRADING_PRIMARY (cr=197 pr=0 pw=0 time=943 us)(object id 54088)
190 TABLE ACCESS BY INDEX ROWID CLASS (cr=194 pr=0 pw=0 time=1306 us)
190 INDEX UNIQUE SCAN CLASS_PRIMARY (cr=4 pr=0 pw=0 time=551 us)(object id 53850)
190 TABLE ACCESS BY INDEX ROWID PRODUCER (cr=384 pr=0 pw=0 time=1617 us)
190 INDEX UNIQUE SCAN PRODUCER_PRIMARY (cr=194 pr=0 pw=0 time=715 us)(object id 54581)
190 TABLE ACCESS BY INDEX ROWID PATIENT (cr=384 pr=0 pw=0 time=1941 us)
190 INDEX UNIQUE SCAN PATIENT_PRIMARY (cr=194 pr=0 pw=0 time=939 us)(object id 54370)
176 INDEX RANGE SCAN USERS_PRODUCER (cr=196 pr=0 pw=0 time=1389 us)(object id 55024)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 6312 0.00 0.00
db file scattered read 1614 0.02 2.08
SQL*Net message from client 6312 0.00 10.11
SQL*Net more data to client 48662 0.00 0.70
db file sequential read 4645 0.02 7.11
latch: shared pool 7 0.00 0.00
latch: cache buffers chains 1 0.00 0.00
********************************************************************************Again, I apologize if this is way more information than is necessary.
All advice/suggestions/assistance will be gratefully accepted.
CarlHi Rob,
Thank you for replying. Here is the view definition . . . it looks pretty convoluted, I know.
I am reporting from a database which I have no control over other than to add indexes where needed.
For reporting purposes, I am needing to create the dataset from a number of different tables; hence all the UNION clauses.
-- CODE FOLLOWS
CREATE OR REPLACE VIEW LLU_V_PRODUCTION_DETAIL_03
AS
SELECT
'QR' AS "Source",
U1."User" AS "UserID",
QRP."ProviderID" AS "ProviderID",
P."LastName" AS "ProviderLastName",
P."FirstName" AS "ProviderFirstName",
TO_CHAR(P."EndDate",'YYYY') AS "GraduationYear",
P."PGroup",
QRP."PatientID",
QRP."ChartNumber",
QRP."PatientLastName",
QRP."PatientFirstName",
QRP."ProcedureID" || '-' || QRP."ProcedureSuffix" AS "Procedure",
QRP."ProcedureDescription",
QRP."Tooth" AS "Site",
QRP."Surface",
QRP."axiUm_Discipline" AS "Discipline",
"CLASS"."Rank" AS "DisciplineSorter",
"CLASS"."Name" AS "DisciplineName",
QRP."Points",
0 AS "Hours",
QRP."ServiceDate",
0 AS "Id",
QRP."UniqueID" AS "Grading",
0 AS "LastSort",
QRP."CategoryID",
'' AS "CPAR comments"
FROM QR_PRODUCTION QRP
INNER JOIN PRODUCER P
ON TRIM(QRP."ProviderID") = TRIM(P."Producer")
INNER JOIN CLASS
ON TRIM(QRP."axiUm_Discipline") = TRIM(CLASS."Class")
INNER JOIN USERS U1
ON QRP."ProviderID" = U1."Producer"
WHERE (QRP."Location" < '9990')
AND (QRP."ProviderID" IS NOT NULL)
AND (QRP."ProcedureID" <> 185)
-- skip the Cavender family - training patients
AND NOT (QRP."PatientLastName" LIKE 'CAVENDER%' AND QRP."PatientFirstName" = 'TED')
AND QRP."PatientFirstName" <> 'NON-PATIENT'
--ORDER BY QRP."ProcedureID"
UNION ALL
SELECT
'axiUm TRX' AS "Source",
U1."User" AS "UserID",
TRX."Producer" AS "ProviderID",
P."LastName",
P."FirstName",
TO_CHAR(P."EndDate",'YYYY') AS "GraduationYear",
P."PGroup",
PAT."Patient",
PAT."Chart",
PAT."Last" AS "PatientLastName",
PAT."First" AS "PatientFirstName",
TRX."Procedure",
PROC."Description",
TRX."Site",
TRX."Surface",
TRIM(PROC."Discipline") AS "Discipline",
"CLASS"."Rank" AS "DisciplineSorter",
"CLASS"."Name",
CASE WHEN
((TRX."Procedure" IN ('A0013','A0019','A0020','A0021','A0023','A0024','A0025','A0026','A0027','A0028','A0029','A0030','O179'))
OR
-- no points are to be awarded for any procedures performed on typodonts
(EXISTS (SELECT 1 FROM PTTYPES PTT WHERE PTT."Patient" = PAT."Patient" and PTT."PatType" = 'TYPO' and PTT."Deleted" = 0)))
AND -- except for the following procedures
(TRX."Procedure" NOT IN ('A0015','A0016','A0018','D0210'))
THEN 0 ELSE PROC."RelValue" END AS "Points",
CASE WHEN TRX."Procedure" IN ('A0013','A0019','A0020','A0021','A0023','A0024','A0025','A0026','A0027','A0028','A0029','A0030','O179')
THEN PROC."RelValue" ELSE 0 END AS "Hours",
TRX."TreatmentDate",
TRX."Id",
TRX."Grading",
-1 AS "LastSort",
-- additional link conditions added and table name changed on 1 July 2009 - cji
SELECT "CategoryID" FROM LLU_CATEGORIES_X_PROCEDURES_03 LLU
WHERE TRX."Procedure" = LLU."ProcedureID"
AND TO_CHAR(P."EndDate",'YYYY') = LLU."GraduationYear"
AND SUBSTR(TRX."Producer",1,1) = LLU."ProviderType"
AND LLU."CategoryID" NOT IN (82)
) AS "CategoryID",
'' AS "CPAR comments"
FROM TRX
INNER JOIN PATIENT PAT
ON TRX."Patient" = PAT."Patient"
INNER JOIN USERS U1
ON TRX."Producer" = U1."Producer"
INNER JOIN PROCEDUR PROC
ON TRX."Procedure" = PROC."Procedure"
INNER JOIN CLASS
ON PROC."Discipline" = CLASS."Class"
INNER JOIN PRODUCER P
ON TRX."Producer" = P."Producer"
WHERE (TRX."Status" = 'C')
AND (TRX."Deleted" = 0)
--AND (TRX."Grading" = 0)
AND (TRX."Procedure" NOT LIKE 'D0149%')
AND (TRX."Procedure" <> 'D5001C')
-- exclude all procedures approved by Peds faculty ONLY FOR CLASS OF 2011 AND LATER
-- EXCEPT FOR the Peds Block code (A0021 and A0022) - always include those
AND NOT
TRX."AppUser" IN (SELECT "User" FROM USERS WHERE "Custom3" = 'YES') -- Peds faculty
AND
TO_CHAR(P."EndDate",'YYYY') >= '2011'
AND
TRIM(TO_CHAR(P."EndDate",'YYYY')) IS NOT NULL
AND
TRX."Procedure" NOT IN ('A0021','A0022')
UNION ALL
SELECT
'axiUm GRADING' AS "Source",
U1."User" AS "UserID",
TRX."Producer" AS "ProviderID",
P."LastName",
P."FirstName",
TO_CHAR(P."EndDate",'YYYY'), -- Graduation year
P."PGroup",
PAT."Patient",
PAT."Chart",
PAT."Last" AS "PatientLastName",
PAT."First" AS "PatientFirstName",
TRX."Procedure",
LLU."Description",
TRX."Site",
TRX."Surface",
TRIM(PROC."Discipline") AS "Discipline",
"CLASS"."Rank" AS "DisciplineSorter",
"CLASS"."Name",
LLU."Points", --LLU_POINTS_FROM_EVALUATIONS(TRX."Procedure", nvl(GI."Text",0)),
0 AS "Hours",
TRX."TreatmentDate",
GI."Id",
GI."Grading",
GI."Row" AS "LastSort",
LLU."CategoryID",
'' AS "CPAR comments"
FROM TRX
INNER JOIN PATIENT PAT
ON TRX."Patient" = PAT."Patient"
INNER JOIN PRODUCER P
ON TRX."Producer" = P."Producer"
INNER JOIN GRADING G
ON TRX."Grading" = G."Grading"
INNER JOIN GRADITEM GI
ON G."Grading" = GI."Grading"
AND TRX."Type" = GI."Type"
AND TRX."Id" = GI."Id"
AND TRX."Treatment" = GI."Treatment"
INNER JOIN PROCEDUR PROC
ON TRX."Procedure" = PROC."Procedure"
INNER JOIN CLASS
ON PROC."Discipline" = CLASS."Class"
INNER JOIN LLU_EVALUATION_DESCRIPTIONS LLU
ON (TRIM(UPPER(GI."QuestionText")) = TRIM(UPPER(LLU."GRADITEM_QuestionText")))
AND (TRIM(UPPER(GI."Text")) = TRIM(UPPER(LLU."GRADITEM_Text")))
AND (TRIM(TRX."Procedure") = TRIM(LLU."ProcedureCode"))
INNER JOIN USERS U1
ON TRX."Producer" = U1."Producer"
WHERE (TRX."Status" = 'C')
AND (TRX."Deleted" = 0)
AND (TRX."Grading" <> 0)
AND (G."Deleted" = 0)
UNION ALL
SELECT 'ClinPtsAdj',
U1."User" AS "UserID",
TRX."Producer",
P."LastName", P."FirstName",
TO_CHAR(P."EndDate",'YYYY'), -- Graduation year
P."PGroup", PAT."Patient", PAT."Chart", PAT."Last", PAT."First",
TRX."Procedure",
'Clinic points adjustment',
'' AS "Site",
'' AS "Surface",
TRIM(TRX."Discipline"),
"CLASS"."Rank",
"CLASS"."Name",
DERIVED."Points",
0 AS "Hours",
GI."Date",
GI."Id",
GI."Grading",
GI."Row",
NULL AS "CategoryID",
TRIM(REPLACE(GI."Note", CHR(13) || CHR(10), ' '))
FROM TRX
INNER JOIN PATIENT PAT
ON (TRX."Patient" = PAT."Patient")
INNER JOIN PRODUCER P
ON (TRX."Producer" = P."Producer")
INNER JOIN CLASS
ON (TRX."Discipline" = CLASS."Class")
INNER JOIN GRADING G
ON (TRX."Grading" = G."Grading")
INNER JOIN GRADITEM GI
ON (GI."Grading" = G."Grading")
AND (GI."Type" = TRX."Type")
AND (GI."Id" = TRX."Id")
AND (GI."Treatment" = TRX."Treatment")
INNER JOIN USERS U1
ON TRX."Producer" = U1."Producer"
INNER JOIN
SELECT TRX."Type", TRX."Id", TRX."Treatment", TRX."Grading",
CASE WHEN TRX."Procedure" = 'G1003' THEN GI."RelValue" * -1 ELSE "RelValue" END AS "Points"
FROM TRX, GRADITEM GI
WHERE (TRX."Type" = GI."Type")
AND (TRX."Id" = GI."Id")
AND (TRX."Treatment" = GI."Treatment")
AND (TRX."Procedure" IN ('G1002','G1003'))
AND (TRX."Status" = 'C')
AND (TRX."Deleted" = 0)
AND (TRX."Grading" <> 0)
AND (GI."RelValue" <> 0)
) DERIVED
ON (TRX."Type" = DERIVED."Type")
AND (TRX."Id" = DERIVED."Id")
AND (TRX."Treatment" = DERIVED."Treatment")
AND (TRX."Grading" = DERIVED."Grading")
WHERE (TRX."Status" = 'C')
AND (TRX."Deleted" = 0)
AND (TRX."Grading" <> 0)
AND (G."Deleted" = 0)
AND (TRX."Procedure" IN ('G1002','G1003'))
AND (GI."IsHeading" = 3)
AND (TRIM(GI."QuestionText") = 'Comments')
--ORDER BY "ProviderID", "DisciplineSorter", "Id", "Grading", "Site", "LastSort";A couple of additional points:
The table USERS already had an index on column "Producer"; I added an index on column "Custom3" but it did not seem to make any difference.
Table USERS has 1,725 rows
Table PRODUCER (aliased as P) has 1,396 rows
Table TRX has 1,443,764 rows.
Any additional information you need I will be glad to provide.
Thanks a bunch; it may not be too late to teach an old dog new tricks.
And thank you all for the kind words about the posting; about the only thing I can do well is follow directions.
Carl -
Query Tuning Assistance - part 1
Predicate Information (identified by operation id):
4 - access("FIN_TRANSACTION"."TRANSACTION_TYPE"="FIN_TRANSACTION_TYPE"."CODE")
7 - access("A"."CURRENCY_CODE"="S1_CURRENCY"."CURRENCY_CODE")
8 - access("S1_CURRENCY_A"."CURRENCY_CODE"="SA"."CURRENCY_CODE")
17 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
20 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='N')
21 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
22 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG
"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
23 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
24 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
26 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
27 - access("A"."INVOICE_NBR"=:B1)
28 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
29 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
32 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='Y')
33 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
34 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING
_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
35 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
36 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
38 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
39 - access("A"."INVOICE_NBR"=:B1)
40 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
41 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."INVOICE_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
44 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
45 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE">"FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND ("FIN_INVOICE"."INVOICE_STATUS"<>'C' OR "FIN_AGING_ARG"."AGING_DATE"<="FIN_INVOICE"."LAST_TRANSACTION_
DATE" OR "FIN_INVOICE"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
46 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
47 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
48 - access("A"."INVOICE_NBR"=:B1)
49 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND "FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT
MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND
"A"."TRANSACTION_DATE"<=:B4 AND ("A"."TRANSACTION_NBR"<=:B5 OR :B6=0)))
50 - filter(NULL IS NOT NULL)
51 - access("FIN_PAYMENT"."PAYMENT_NBR"="FIN_TRANSACTION"."PAYMENT_NBR")
filter(("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_PAYMENT"."PAYMENT_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND
"FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_PAYMENT"."LOCATION_ID" IS NOT NULL) AND CASE WHEN
"FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AG
ING_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
52 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/P' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')))
55 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
56 - filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NOT NULL AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
57 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
59 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
60 - access("A"."PAYMENT_NBR"=:B1)
61 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
62 - filter(NULL IS NOT NULL)
65 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
66 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/P' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')) AND
("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND
("UNAPPLIED_AMOUNT"<>0 OR "FIN_AGING_ARG"."AGING_DATE"<="LAST_TRANSACTION_DATE") AND ("FIN_AGING_ARG"."PLC_ID" IS NULL
OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND "FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND
"FIN_PAYMENT"."LOCATION_ID" IS NOT NULL))
67 - access("FIN_PAYMENT"."PAYMENT_DATE">"FIN_AGING_ARG"."AGING_DATE")
68 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
69 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
70 - access("A"."PAYMENT_NBR"=:B1)
71 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
75 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='N')
76 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
77 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/R' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG
"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
78 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
79 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
81 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
82 - access("A"."INVOICE_NBR"=:B1)
83 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
84 - access("FIN_INVOICE"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
85 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
86 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
90 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='Y')
91 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
92 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/R' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING
_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
93 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
94 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
96 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
97 - access("A"."INVOICE_NBR"=:B1)
98 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
99 - access("FIN_INVOICE"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
100 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
101 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."INVOICE_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
102 - access("FIN_INVOICE"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
filter(("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE">"FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND ("FIN_INVOICE"."INVOICE_STATUS"<>'C' OR "FIN_AGING_ARG"."AGING_DATE"<="FIN_INVOICE"."LAST_TRANSACTION_
DATE" OR "FIN_INVOICE"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
105 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
106 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
107 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/R')
108 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
109 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
110 - access("A"."INVOICE_NBR"=:B1)
111 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND "FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT
MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND
"A"."TRANSACTION_DATE"<=:B4 AND ("A"."TRANSACTION_NBR"<=:B5 OR :B6=0)))
112 - filter(NULL IS NOT NULL)
113 - access("FIN_PAYMENT"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
115 - access("FIN_PAYMENT"."PAYMENT_NBR"="FIN_TRANSACTION"."PAYMENT_NBR")
filter(("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_PAYMENT"."PAYMENT_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND
"FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_PAYMENT"."LOCATION_ID" IS NOT NULL) AND CASE WHEN
"FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AG
ING_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
116 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/R' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')))
119 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
120 - filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NOT NULL AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
121 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
123 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
124 - access("A"."PAYMENT_NBR"=:B1)
125 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
126 - filter(NULL IS NOT NULL)
130 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
131 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/R' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')) AND
("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND
("UNAPPLIED_AMOUNT"<>0 OR "FIN_AGING_ARG"."AGING_DATE"<="LAST_TRANSACTION_DATE") AND ("FIN_AGING_ARG"."PLC_ID" IS NULL
OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND "FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND
"FIN_PAYMENT"."LOCATION_ID" IS NOT NULL))
132 - access("FIN_PAYMENT"."PAYMENT_DATE">"FIN_AGING_ARG"."AGING_DATE")
133 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
134 - access("FIN_PAYMENT"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
135 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
136 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
137 - access("A"."PAYMENT_NBR"=:B1)
139 - access("TB_TRANSACTION"."TRANSACTION_NBR"="FIN_AGING_INVOICE_VIEW"."MAX_TRANSACTION_NBR")
140 - filter("A"."FINANCIAL_SOURCE"='A/R' AND ("TB_TRANSACTION"."AFTER_STATUS"<>'C' OR "A"."INVOICE_STATUS"<>'C' OR
"A"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
141 - access("FIN_AGING_INVOICE_VIEW"."SERIAL_NUMBER"="A"."INVOICE_NBR")
142 - access("A1_USER_LOCATION"."USER_ID"='BRENT' AND "A1_USER_LOCATION"."PLC_ID"="A"."LOCATION_ID")
144 - access("SB"."NAME_AND_ADDRESS_ID"="A"."CUSTOMER_VENDOR_ID")
146 - access("SB"."NAME_AND_ADDRESS_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
148 - access("SA"."NAME_AND_ADDRESS_ID"="A"."LOCATION_ID")
151 - filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NULL)
152 - access("FIN_TRANSACTION"."INVOICE_NBR"="A"."INVOICE_NBR")
filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL)
153 - access("A"."TRADER_ID"="S1_TRADER"."TRADER_ID"(+))
155 - access("A"."CUSTOMER_VENDOR_ID"="S1_NA_BUSINESS_TYPE"."NAME_AND_ADDRESS_ID"(+))
157 - access("FIN_TRANSACTION"."TRANSACTION_TYPE"="FIN_TRANSACTION_TYPE"."CODE")
158 - filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NOT NULL)
162 - access("A"."CURRENCY_CODE"="S1_CURRENCY"."CURRENCY_CODE")
163 - access("S1_CURRENCY_A"."CURRENCY_CODE"="SA"."CURRENCY_CODE")
172 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
175 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='N')
176 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
177 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG
"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
178 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
179 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
181 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
182 - access("A"."INVOICE_NBR"=:B1)
183 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
184 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
187 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='Y')
188 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
189 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING
_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
190 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
191 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
193 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
194 - access("A"."INVOICE_NBR"=:B1)
195 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
196 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."INVOICE_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
199 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
200 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE">"FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND ("FIN_INVOICE"."INVOICE_STATUS"<>'C' OR "FIN_AGING_ARG"."AGING_DATE"<="FIN_INVOICE"."LAST_TRANSACTION_
DATE" OR "FIN_INVOICE"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
201 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
202 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
203 - access("A"."INVOICE_NBR"=:B1)
204 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND "FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT
MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND
"A"."TRANSACTION_DATE"<=:B4 AND ("A"."TRANSACTION_NBR"<=:B5 OR :B6=0)))
205 - filter(NULL IS NOT NULL)
206 - access("FIN_PAYMENT"."PAYMENT_NBR"="FIN_TRANSACTION"."PAYMENT_NBR")
filter(("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_PAYMENT"."PAYMENT_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND
"FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_PAYMENT"."LOCATION_ID" IS NOT NULL) AND CASE WHEN
"FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AG
ING_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
207 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/P' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')))
210 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)Murray Sobol wrote:
Thank you for your USELESS comments.
If you can not or are not able to provide any meaningful suggestions, please dont waste MY time and the FORUM's space.
You have just been promoted to my SPAM filter.You have scattered your problem in hard-to-read and unformatted text across 7 separate postings.
Query Tuning Assistance - part 2
Query Tuning Assistance - Part 3
Query Tuning Assistance - part 4
Query Tuning Assistance - part 5
Query Tuning Assistance - part 6
Query Tuning Assistance - part 7
(and exactly how are we suppose to have a meaningful discussion about this problem when any such answers will be scattered across 7 different threads!?)
You have NOT bothered to read the forum FAQ that explains in detail how to write a query tuning posting.
And good luck with the non-existent spam filter here on OTN.
PS. Correction. See you also posted a part 8 (Query Tuning Assistance - part 8 You just do not seem to get it, huh? Ever read http://catb.org/esr/faqs/smart-questions.html - you should. And sooner rather than later.
Edited by: Billy Verreynne on Mar 4, 2012 2:45 PM -
Query Tuning Assistance - part 7
filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NOT NULL)
1271 - access("FIN_TRANSACTION"."TRANSACTION_TYPE"="FIN_TRANSACTION_TYPE"."CODE")
1273 - access("S1_CURRENCY_A"."CURRENCY_CODE"="SA"."CURRENCY_CODE")
1275 - access("A"."CURRENCY_CODE"="S1_CURRENCY"."CURRENCY_CODE")
1289 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
1290 - filter(NULL IS NOT NULL AND NULL IS NOT NULL)
1293 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='N')
1294 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1295 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG
"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1296 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1297 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
1299 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1300 - access("A"."INVOICE_NBR"=:B1)
1301 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1302 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
1303 - filter(NULL IS NOT NULL AND NULL IS NOT NULL)
1306 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='Y')
1307 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1308 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING
_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1309 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1310 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
1312 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1313 - access("A"."INVOICE_NBR"=:B1)
1314 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1315 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."INVOICE_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
1316 - filter(NULL IS NOT NULL)
1319 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1320 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE">"FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND ("FIN_INVOICE"."INVOICE_STATUS"<>'C' OR "FIN_AGING_ARG"."AGING_DATE"<="FIN_INVOICE"."LAST_TRANSACTION_
DATE" OR "FIN_INVOICE"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
1321 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1322 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
1323 - access("A"."INVOICE_NBR"=:B1)
1324 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND "FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT
MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND
"A"."TRANSACTION_DATE"<=:B4 AND ("A"."TRANSACTION_NBR"<=:B5 OR :B6=0)))
1325 - filter(NULL IS NOT NULL)
1326 - access("FIN_PAYMENT"."PAYMENT_NBR"="FIN_TRANSACTION"."PAYMENT_NBR")
filter(("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_PAYMENT"."PAYMENT_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND
"FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_PAYMENT"."LOCATION_ID" IS NOT NULL) AND CASE WHEN
"FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AG
ING_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1327 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/P' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')))
1330 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1331 - filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NOT NULL AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1332 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1334 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1335 - access("A"."PAYMENT_NBR"=:B1)
1336 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
1339 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1340 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/P' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')) AND
("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND
("UNAPPLIED_AMOUNT"<>0 OR "FIN_AGING_ARG"."AGING_DATE"<="LAST_TRANSACTION_DATE") AND ("FIN_AGING_ARG"."PLC_ID" IS NULL
OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND "FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND
"FIN_PAYMENT"."LOCATION_ID" IS NOT NULL))
1341 - access("FIN_PAYMENT"."PAYMENT_DATE">"FIN_AGING_ARG"."AGING_DATE")
1342 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1343 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
1344 - access("A"."PAYMENT_NBR"=:B1)
1345 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
1346 - filter(NULL IS NOT NULL AND NULL IS NOT NULL)
1350 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='N')
1351 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1352 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/R' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG
"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1353 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1354 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
1356 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1357 - access("A"."INVOICE_NBR"=:B1)
1358 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
1359 - access("FIN_INVOICE"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
1360 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1361 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
1362 - filter(NULL IS NOT NULL AND NULL IS NOT NULL)
1366 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='Y')
1367 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1368 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/R' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING
_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1369 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1370 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
1372 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1373 - access("A"."INVOICE_NBR"=:B1)
1374 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
1375 - access("FIN_INVOICE"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
1376 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1377 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."INVOICE_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
1378 - filter(NULL IS NOT NULL)
1379 - access("FIN_INVOICE"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
filter(("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE">"FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND ("FIN_INVOICE"."INVOICE_STATUS"<>'C' OR "FIN_AGING_ARG"."AGING_DATE"<="FIN_INVOICE"."LAST_TRANSACTION_
DATE" OR "FIN_INVOICE"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
1382 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1383 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
1384 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/R')
1385 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1386 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
1387 - access("A"."INVOICE_NBR"=:B1)
1388 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND "FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT
MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND
"A"."TRANSACTION_DATE"<=:B4 AND ("A"."TRANSACTION_NBR"<=:B5 OR :B6=0)))
1389 - filter(NULL IS NOT NULL)
1390 - access("FIN_PAYMENT"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
1392 - access("FIN_PAYMENT"."PAYMENT_NBR"="FIN_TRANSACTION"."PAYMENT_NBR")
filter(("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_PAYMENT"."PAYMENT_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND
"FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_PAYMENT"."LOCATION_ID" IS NOT NULL) AND CASE WHEN
"FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AG
ING_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1393 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/R' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')))
1396 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1397 - filter("FIN_TRANSACTION"."PAYMENT_NBR" IS NOT NULL AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1398 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1400 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1401 - access("A"."PAYMENT_NBR"=:B1)
1402 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
1406 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1407 - filter("FIN_PAYMENT"."FINANCIAL_SOURCE"='A/R' AND ("FIN_PAYMENT"."INTERNAL_FLAG"='N' OR
"FIN_PAYMENT"."INTERNAL_FLAG"='Y' AND ("FIN_PAYMENT"."PAYMENT_TYPE"='C' OR "FIN_PAYMENT"."PAYMENT_TYPE"='N')) AND
("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND
("UNAPPLIED_AMOUNT"<>0 OR "FIN_AGING_ARG"."AGING_DATE"<="LAST_TRANSACTION_DATE") AND ("FIN_AGING_ARG"."PLC_ID" IS NULL
OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND "FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND
"FIN_PAYMENT"."LOCATION_ID" IS NOT NULL))
1408 - access("FIN_PAYMENT"."PAYMENT_DATE">"FIN_AGING_ARG"."AGING_DATE")
1409 - filter("FIN_AGING_ARG"."CREDIT_STATUS"='0' OR "FIN_AGING_ARG"."CREDIT_STATUS"='1' AND
"S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "FIN_AGING_ARG"."CREDIT_STATUS"='2' AND "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT
NULL OR "S1_CUSTOMER_DATA"."HOLD_FLAG"='Y' OR "S1_CUSTOMER_DATA"."CREDIT_LIMIT" IS NOT NULL)
1410 - access("FIN_PAYMENT"."CUSTOMER_VENDOR_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
1411 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1412 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
1413 - access("A"."PAYMENT_NBR"=:B1)
1414 - filter("A"."LOCATION_ID" IS NOT NULL AND ("A"."INTERNAL_FLAG"='N' OR ("A"."PAYMENT_TYPE"='C' OR
"A"."PAYMENT_TYPE"='N')))
1415 - access("FIN_AGING_INVOICE_VIEW"."SERIAL_NUMBER"="A"."PAYMENT_NBR")
1416 - access("A1_USER_LOCATION"."USER_ID"='BRENT' AND "A1_USER_LOCATION"."PLC_ID"="A"."LOCATION_ID")
1418 - access("SB"."NAME_AND_ADDRESS_ID"="A"."CUSTOMER_VENDOR_ID")
1420 - access("SB"."NAME_AND_ADDRESS_ID"="S1_CUSTOMER_DATA"."CUSTOMER_ID")
1421 - access("SB"."TRADER_ID"="S1_TRADER"."TRADER_ID"(+))
1423 - access("SA"."NAME_AND_ADDRESS_ID"="A"."LOCATION_ID")
1425 - access("S1_CURRENCY_A"."CURRENCY_CODE"="SA"."CURRENCY_CODE")
1427 - access("A"."CURRENCY_CODE"="S1_CURRENCY"."CURRENCY_CODE")
1428 - filter("TA"."INVOICE_NBR" IS NOT NULL AND "TA"."FINANCIAL_SOURCE"='A/R' AND "TA"."TRANSACTION_TYPE"<>'PAY' AND
"TA"."REVERSED_TRANSACTION_NBR" IS NULL)
1429 - access("A"."PAYMENT_NBR"="TA"."PAYMENT_NBR")
filter("TA"."PAYMENT_NBR" IS NOT NULL)
1431 - access("TA"."TRANSACTION_TYPE"="FIN_TRANSACTION_TYPE"."CODE")
filter("FIN_TRANSACTION_TYPE"."CODE"<>'PAY')
1432 - access("SB"."NAME_AND_ADDRESS_ID"="S1_NA_BUSINESS_TYPE"."NAME_AND_ADDRESS_ID"(+))
1447 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
1448 - filter(NULL IS NOT NULL AND NULL IS NOT NULL)
1451 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='N')
1452 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1453 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG
"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."DUE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1454 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1455 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
1457 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1458 - access("A"."INVOICE_NBR"=:B1)
1459 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1460 - filter("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2))
1461 - filter(NULL IS NOT NULL AND NULL IS NOT NULL)
1464 - filter("FIN_AGING_ARG"."INVOICE_DATE_FLAG"='Y')
1465 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1466 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND CASE WHEN (("FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' AND "FIN_INVOICE"."ORIGINAL_AMOUNT"<0) OR
"FIN_INVOICE"."ORIGINAL_AMOUNT">0) THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING
_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_4"+1 THEN 4 WHEN
"FIN_AGING_ARG"."AGING_DATE"-"FIN_INVOICE"."INVOICE_DATE"<"FIN_AGING_ARG"."B_5"+1 THEN 5 ELSE 6 END ELSE 1 END >0)
1467 - filter("FIN_TRANSACTION"."INVOICE_NBR" IS NOT NULL AND
"FIN_INVOICE"."INVOICE_NBR"="FIN_TRANSACTION"."INVOICE_NBR" AND ("FIN_AGING_ARG"."MAX_KEY"=0 OR
"FIN_TRANSACTION"."TRANSACTION_NBR"<="FIN_AGING_ARG"."MAX_KEY"))
1468 - access("FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A"
WHERE "A"."INVOICE_NBR"=:B1 AND "A"."TRANSACTION_DATE"<=:B2 AND ("A"."TRANSACTION_NBR"<=:B3 OR :B4=0)))
1470 - filter("A"."TRANSACTION_DATE"<=:B1 AND ("A"."TRANSACTION_NBR"<=:B2 OR :B3=0))
1471 - access("A"."INVOICE_NBR"=:B1)
1472 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1473 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND EXISTS (SELECT 0 FROM
GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."INVOICE_NBR"=:B3 AND ("A"."TRANSACTION_NBR"<=:B4 OR :B5=0)))
1474 - filter(NULL IS NOT NULL)
1477 - access("FIN_AGING_ARG"."DAILY_REPORT_NBR"=36)
1478 - filter("FIN_INVOICE"."FINANCIAL_SOURCE"='A/P' AND ("FIN_INVOICE"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_S
OURCE" OR "FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_INVOICE"."INVOICE_DATE">"FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_INVOICE"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_AGING_ARG"."PLC_ID"
IS NOT NULL) AND ("FIN_INVOICE"."INVOICE_STATUS"<>'C' OR "FIN_AGING_ARG"."AGING_DATE"<="FIN_INVOICE"."LAST_TRANSACTION_
DATE" OR "FIN_INVOICE"."BALANCE_FORWARD_PRINT_FLAG"<>'Y'))
1479 - access("TVC"."DAILY_REPORT_NBR"=:B1 AND "VENDOR_CUSTOMER_ID"=:B2)
1480 - filter("A"."TRANSACTION_NBR"<=:B1 OR :B2=0)
1481 - access("A"."INVOICE_NBR"=:B1)
1482 - filter(("FIN_AGING_ARG"."VENDOR_CUSTOMER_FLAG"='N' OR EXISTS (SELECT 0 FROM GRAINVTRC."FIN_AGING_ARG_VC" "TVC"
WHERE "VENDOR_CUSTOMER_ID"=:B1 AND "TVC"."DAILY_REPORT_NBR"=:B2)) AND "FIN_TRANSACTION"."TRANSACTION_NBR"= (SELECT
MAX("TRANSACTION_NBR") FROM GRAINVTRC."FIN_TRANSACTION" "A" WHERE "A"."PAYMENT_NBR"=:B3 AND
"A"."TRANSACTION_DATE"<=:B4 AND ("A"."TRANSACTION_NBR"<=:B5 OR :B6=0)))
1483 - filter(NULL IS NOT NULL)
1484 - access("FIN_PAYMENT"."PAYMENT_NBR"="FIN_TRANSACTION"."PAYMENT_NBR")
filter(("FIN_PAYMENT"."FINANCIAL_SOURCE"="FIN_AGING_ARG"."FINANCIAL_SOURCE" OR
"FIN_AGING_ARG"."FINANCIAL_SOURCE"='APR') AND "FIN_PAYMENT"."PAYMENT_DATE"<="FIN_AGING_ARG"."AGING_DATE" AND
("FIN_AGING_ARG"."PLC_ID" IS NULL OR "FIN_AGING_ARG"."PLC_ID" IS NOT NULL AND
"FIN_PAYMENT"."LOCATION_ID"="FIN_AGING_ARG"."PLC_ID" AND "FIN_PAYMENT"."LOCATION_ID" IS NOT NULL) AND CASE WHEN
"FIN_AGING_ARG"."AGE_CREDIT_FLAG"='Y' THEN CASE WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AG
ING_ARG"."B_1"+1 THEN 1 WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_2"+1 THEN 2
WHEN "FIN_AGING_ARG"."AGING_DATE"-"FIN_PAYMENT"."PAYMENT_DATE"<"FIN_AGING_ARG"."B_3"+1 THEN 3 WHENMurray Sobol wrote:
Thank you for your USELESS comments.
If you can not or are not able to provide any meaningful suggestions, please dont waste MY time and the FORUM's space.
You have just been promoted to my SPAM filter.You have scattered your problem in hard-to-read and unformatted text across 7 separate postings.
Query Tuning Assistance - part 2
Query Tuning Assistance - Part 3
Query Tuning Assistance - part 4
Query Tuning Assistance - part 5
Query Tuning Assistance - part 6
Query Tuning Assistance - part 7
(and exactly how are we suppose to have a meaningful discussion about this problem when any such answers will be scattered across 7 different threads!?)
You have NOT bothered to read the forum FAQ that explains in detail how to write a query tuning posting.
And good luck with the non-existent spam filter here on OTN.
PS. Correction. See you also posted a part 8 (Query Tuning Assistance - part 8 You just do not seem to get it, huh? Ever read http://catb.org/esr/faqs/smart-questions.html - you should. And sooner rather than later.
Edited by: Billy Verreynne on Mar 4, 2012 2:45 PM -
Input query with dynamic actual & forecast values by month per year
Hello,
I am working on a Input ready query for a forecasting application which shows both actuals and forecast numbers and the user will revise the forecast numbers by month
Requirement: I want to build a Input query for monthly forecasting for the current year. It will be dynamic rolling of months with actuals & forecast data.
E.g. My report has 12 months for the current year
and if run the report in May, the months before May has to show the actuals and the months after May has to show the old forecast data so that the user will revise the numbers again in each month and save the data to the real time cube.
Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sept.Nov.Dec
Act Act Act Act Act Old frcst for the remaining months
user will revise forecast for these months
So, i am able to create Input query with all restricted key figures( plan kf has change mode set to change, actual kf are not set change) and calculate key figures and all the logic is done on dynamically moving/rolling the data based on the input month of the year.
But the problem is that i am using cal kf to dynamically roll months, i was not able to set the change option for the cal kf.
So, how can i make sure that the dynamically changed plan months will open for entering forecast and the actuals months not to change?
Do you guys have any better solutions in implementing it?
I really appreciate it your input....:)
Thanks,
SriniHi,
Please look at the following DOC which may be useful to you and if so please grant me point.
Regards,
SUbha'
Input-Ready Query
Use
You use input-ready queries to create applications for manual planning. These can range from simple data entry scenarios to complex planning applications.
Integration
You define a query that you want to use for manual planning in the BEx Query Designer (see Defining New Queries).
In the Web Application Designer or the BEx Analyzer, you can combine the input-ready queries with other queries and planning functions to create complex planning applications.
Prerequisites
You can define an input-ready query on any of the following InfoProviders:
● Aggregation levels (see Aggregation Levels)
● MultiProviders that include at least one simple aggregation level
The aggregation levels are created in the planning modeler; MultiProviders are defined in the modeling functional area of the Data Warehousing Workbench.
Features
Definition of an Input-Ready Query
Once you have defined a query on an InfoProvider, you see the Planning tab page under the Properties of structural components (for example, in key figures or restricted key figures). The options provided there allow you to determine which structural components of an input-ready query are to be input ready at runtime and which are not. With structural components that are not input ready, you can also determine whether these components are viewed as reference data or are just protected against manual entry.
For the structural components, you also have the following options:
Input readiness of structural components of a query
Option
Description
Not input ready (reference data)
If they are being used as reference data, the structural components are not protected by data locks to ensure exclusive access for one user because this data serves as a reference for many users.
This is the default setting.
Not input ready (no reference data)
If you want to protect structural components against manual entries but allow changes by planning functions, you can use locks to protect this data for one particular user. In this way you can ensure that the planning function works with the displayed data only and not with data that has been changed by other users.
Input ready
You can also determine whether an input ready query is to be started in change mode or in display mode. You find this property in the Query Properties on the Planning tab page. If there is at least one input-ready query component, the query (as long as it has not been determined otherwise) is started in display mode.
In BI applications that use input ready queries as data providers, you can enter data manually at runtime. For more information, see Performing Manual Planning and Creation of Planning Applications.
Example
You want to create an input-ready query for manual planning for a plan-actual comparison of revenues for a set of products. You want the plan data in a real-time-enabled InfoCube and the actual data in a standard InfoCube.
1. Create a MultiProvider that includes the InfoCubes for the plan and actual data.
2. Define an aggregation level on the MultiProvider which contains the characteristic Product and the key figure Revenue.
3. On the aggregation level, create two restricted key figures Plan Revenue and Actual Revenue. For restriction, choose the characteristic 0INFOPROV and restrict it to the plan or actual InfoCube.
4. Add the restricted key figures to the key figure structure. Insert Product into the rows. For Plan Revenue, choose Input Ready for the input-readiness option. For Actual Revenue, choose the option Not Input Ready (Reference Data).
5. In the query properties, set the indicator that determines whether the queries are started in display or change mode as required.
Example of an input-ready query
Product
Plan Revenue
Actual Revenue
P01
20
P02
30
If you want to keep actual and plan data in a real-time enabled InfoCube, you do not require a MultiProvider for the task described above. Create an aggregation level on the InfoCube and define the input-ready query for the aggregation level. In the example above, a version characteristic acts as the InfoProvider. Create restricted key figures with the plan or actual version and proceed as in the previous example. -
Hi,
I have created an Aggregate Level on Multiprovider and restricted in the query as follows:
Currency Key (USD)
Posting Period (#)
InfoProvider
Actual Amt(RKF by Actual Infoprovider) - Read Enabled
Plan Amt(RKF by Plan Infoprovider) - Plan Enabled
Input Query starts in change mode
When I execute the query in Bex Analyzer, I can see data in Actual Amt RKF and enter data in Plan Amt RKF.When I save the data it disappears.For save I am using SAVE_AREA command.Any ideas on what is missing in here.
Before I can make my selections complex, I wanted to try this simple one.Also, I can't execute this query from query designer ..some problem with basis setting, I hope that isn't the reason.I got this working when I created the input query on real time provider rather than multiprovider.But I want to make it work with multiprovider as I need to show data from actuals and plan.
Thanks
RTRavi,
You tell the system within your RKF by selecting real time infoprovider in addition to the amount.I deleted what I had created earlier to have a clean start.Here are the steps I followed to re-create: (we are working with 0amount, posting period, currency key and infoprovider objects only)
1.Created 2 restricted key figures (RKF1 - 0amount, actual cube and RKF2 - 0amount, plan cube)
2. RKF1 planning properties data cannot be changed and RKF2 planning properties data can be changed by user or planning functions.
3. Created structure in columns and added these two RKF.
4. Added Posting Period to rows and changed display to key.Acess type to Master data and query execution to char rels.
5.Added Currency to rows and changed display to No Display.
6.In the default values, set posting period to 1and set currency key to USD.
7.Added Infoprovider to free char.
8.Added both posting period (1) and currency key(usd) to char restrictions.
9.Opened Bex Analyzer and created the save command.
10. Executed the query, input the data and data disappears.
Cheers
RT -
How can I enter the data from the recordset into your insert query
Hi
i would like to know how I can enter the data from the recordset into your insert query without using a hidden field.
thanks
------------------------------------------------------------------------------------Below is the code------------------------------------------------------------------------------------- -----
<?php require_once('../../Connections/ezzyConn.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
return $theValue;
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "frmpostComment")) {
$insertSQL = sprintf("INSERT INTO comments (com_topic, com_user, title, com_content, com_date, online_id) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['com_topic'], "int"),
GetSQLValueString($_POST['commentby'], "int"),
GetSQLValueString($_POST['title'], "text"),
GetSQLValueString($_POST['com_content'], "text"),
GetSQLValueString($_POST['com_date'], "text"),
GetSQLValueString($_POST['online_id'], "int"));
mysql_select_db($database_ezzyConn, $ezzyConn);
$Result1 = mysql_query($insertSQL, $ezzyConn) or die(mysql_error());
$insertGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
header(sprintf("Location: %s", $insertGoTo));
$colname_rsCommentby = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_rsCommentby = $_SESSION['MM_Username'];
mysql_select_db($database_ezzyConn, $ezzyConn);
$query_rsTopics = "SELECT topic_id, topic FROM topics ORDER BY topic_date DESC";
$rsTopics = mysql_query($query_rsTopics, $ezzyConn) or die(mysql_error());
$row_rsTopics = mysql_fetch_assoc($rsTopics);
$totalRows_rsTopics = mysql_num_rows($rsTopics);
mysql_select_db($database_ezzyConn, $ezzyConn);
$query_rsOnline = "SELECT online_id, `online` FROM `online` ORDER BY online_id DESC";
$rsOnline = mysql_query($query_rsOnline, $ezzyConn) or die(mysql_error());
$row_rsOnline = mysql_fetch_assoc($rsOnline);
$totalRows_rsOnline = mysql_num_rows($rsOnline);
$colname_rsCommentby = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_rsCommentby = $_SESSION['MM_Username'];
mysql_select_db($database_ezzyConn, $ezzyConn);
$query_rsCommentby = sprintf("SELECT user_id, username FROM users WHERE username = %s", GetSQLValueString($colname_rsCommentby, "text"));
$rsCommentby = mysql_query($query_rsCommentby, $ezzyConn) or die(mysql_error());
$row_rsCommentby = mysql_fetch_assoc($rsCommentby);
$totalRows_rsCommentby = mysql_num_rows($rsCommentby);
?>
<?php include("../includes/access.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ezzybay - easy click, ezzy shopping</title>
<link href="../css/global.css" rel="stylesheet" type="text/css" />
<link href="../css/navigation.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<?php include("../includes/top.php"); ?>
<div id="content">
<div id="pageTitle">
<h2>CMS Section:</h2>
<p>Comment Topics Page</p>
</div>
<?php include("../includes/leftnav.php"); ?>
<div id="mainContent">
<form action="<?php echo $editFormAction; ?>" method="post" name="frmpostComment" id="frmpostComment">
<table align="center">
<caption>Post Comment</caption>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Topic:</td>
<td><select name="com_topic" class="listbox" id="com_topic">
<?php
do {
?>
<option value="<?php echo $row_rsTopics['topic_id']?>"><?php echo $row_rsTopics['topic']?></option>
<?php
} while ($row_rsTopics = mysql_fetch_assoc($rsTopics));
$rows = mysql_num_rows($rsTopics);
if($rows > 0) {
mysql_data_seek($rsTopics, 0);
$row_rsTopics = mysql_fetch_assoc($rsTopics);
?>
</select></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Title:</td>
<td><input name="title" type="text" class="textfield" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right" valign="top">Comment:</td>
<td><textarea name="com_content" cols="50" rows="5" class="textarea"></textarea></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right">Status:</td>
<td><select name="online_id" class="smalllistbox">
<?php
do {
?>
<option value="<?php echo $row_rsOnline['online_id']?>" <?php if (!(strcmp($row_rsOnline['online_id'], 2))) {echo "SELECTED";} ?>><?php echo $row_rsOnline['online']?></option>
<?php
} while ($row_rsOnline = mysql_fetch_assoc($rsOnline));
?>
</select></td>
</tr>
<tr> </tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"> </td>
<td><input type="submit" class="button" value="Insert record" /></td>
</tr>
</table>
<input name="commentby" type="hidden" id="commentby" value="<?php echo $row_rsCommentby['user_id']; ?>" />
<input type="hidden" name="com_date" value="<?php echo date("d/m/y : H:i:s", time()) ?>" />
<input type="hidden" name="MM_insert" value="frmpostComment" />
</form>
</div>
</div>
<?php include("../includes/footer.php"); ?>
</div>
</body>
</html>
<?php
mysql_free_result($rsTopics);
mysql_free_result($rsOnline);
mysql_free_result($rsCommentby);
?>I'll keep it simple and only use the date as an example. Hopefully you get the concept from the example. Basically you create a recordset and insert the recordset value instead of the POST value into your insert query. In the example below I declared a variable for $the_date and entered the variable into the INSERT query instead of the hidden POST field.
<?php require_once('../../Connections/ezzyConn.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
return $theValue;
$the_date = date("d/m/y : H:i:s", time());
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "frmpostComment")) {
$insertSQL = sprintf("INSERT INTO comments (com_topic, com_user, title, com_content, com_date, online_id) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['com_topic'], "int"),
GetSQLValueString($_POST['commentby'], "int"),
GetSQLValueString($_POST['title'], "text"),
GetSQLValueString($_POST['com_content'], "text"),
GetSQLValueString($the_date, "text"),
GetSQLValueString($_POST['online_id'], "int"));
mysql_select_db($database_ezzyConn, $ezzyConn);
$Result1 = mysql_query($insertSQL, $ezzyConn) or die(mysql_error());
$insertGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
header(sprintf("Location: %s", $insertGoTo));
?> -
How to copy data from a Input query to real time Infocube
Hi All, I need some help on IP related stuff. The details are as below:
I am using two real time infocubes and one Multiprovider on them.
First Infocube u2018PRODUCTu2019 with the following Objects:
Product Group ,Product,Region ,Fiscal Year , Fiscal Year Varient ,0currency
Gross Sales
Second Infocube u2018C_PRODUCT u2018 with the following Objects:
Product Group ,Product,Region ,Fiscal Year , Fiscal Year Varient ,0currency
Gross Sales and Forecast Sales
( u2018Forecast Salesu2019 in the extra object in the second Infocube. Remaining objects are same in the both the cubes)
First Infocube u2018Productu2019 has data but the second cube does not have any data.
I have created a Multiprovider ZMulti and in that I have included these two cubes. On this Multi Provider, I have created a Aggrigation Level(The details of the aggregation level is provided in the next page).
On this Aggrigation level I have built a Input Query by which I run the report.
(In the Rows area, I have taken Product Group, Product, Region and Fical year.
In the Key Figure section, I have taken Gross Sales and Forecast Sales( which is part of the second Infocube C_Product). These two Key Figures are made Input as Input ready. And the Query is Input ready query. In the Filter, I have taken Fiscal Year Variant. )
Data available in the first cube and no data currently in the second cube. Now executed the report and report displayed information from the first cube.
EX:
Product Product Region Year Gross Sales Forecast Sales
Group
PG01 Beer North 2008 10000 u2026u2026u2026
PG01 Beer South 2008 20000 u2026u2026u2026
PG01 Beer East 2008 15000 u2026u2026u2026
The second column is empty and there is no data for the Forecast sales Key Figure in the column.
Things look OK till the above.
Now based on the Gross Sales, I am entering forecast Sales values and I need to save the entire record to the second cube.
For this in the report, I have given the Forecast sales values in the second column and right clicked the mouse and form the menu which I got, selected the u2018SAVEu2019 Option to save the data. For some time, I can see u2018Processingu2019 message and later values at u2018Forecast Salesu2019 are disappearing.
Data is not saving to the cube second cube.
====================================================
Am I missing any thing?
In the Query, Do I need to provide InfoProvider and restrict it to specific value?
In the query, Do I need to include, 0currency object?
Could you please guide me on this?
=============================================
Details of the Aggrigation level.
I have created an Aggrigation Level ZAL_Prod on MultiProvider.
Selected all the objects and activated.
In the Filter, I have taken 0Fiscal Year Variant and saved it.Restrict Forecast sales to the Plan cube in the Query.
that should fix it. -
IP: create 0AC_DOC_NO if no entry in Input Query
Hello Gurus,
If in my Input Query no Entry in the Objct 0AC_DOC_NR, then create a new one. How can i solve this Problem, wich are
the steps for it ?
Thanks
BKYHi,
Follow the answer at below thread:
SAP IP: Create a User Exit for no entry data in INPUT Query
Regards
Narasimha Devisetty -
Hi Fellas,
I am new to query tuning. I have a big query with a TKPROF details. It is just fetching 34 records and taking approx 30 mins.
The TKPROF detail will follow after the query.
SELECT /*+ NO_INDEX(A, RA_CUSTOMER_TRX_N11 ) USE_NL(TYPES,A) */ a.customer_trx_id CUSTOMER_TRX_ID ,
a.trx_number TRX_NUMBER ,
A . INTERFACE_HEADER_ATTRIBUTE5 BILLING_STAGE ,
A . INTERFACE_HEADER_CONTEXT PBRR_TYPE ,
A . INTERFACE_HEADER_ATTRIBUTE11 BILLING_TERM ,
NVL ( TL . SEQUENCE_NUM , 1 ) TERM_SEQUENCE_NUMBER ,
types.type TRX_TYPE ,
l_types.meaning TRX_TYPE_NAME ,
TYPES . ACCOUNTING_AFFECT_FLAG OPEN_RECEIVABLE_FLAG ,
a.trx_date TRX_DATE , SHIP_TO_CUSTOMER_ID SHIP_TO_CUSTOMER_ID ,
SHIP_TO_CONTACT_ID SHIP_TO_CONTACT_ID ,
REMIT_TO_ADDRESS_ID REMIT_TO_ADDRESS_ID ,
A . PRIMARY_SALESREP_ID PRIMARY_SALESREP_ID ,
B . ACCOUNT_NUMBER CUSTOMER_NUMBER ,
A . INTERNAL_NOTES INTERNAL_NOTES ,
A . COMMENTS TRX_COMMENTS ,
PREVIOUS_CUSTOMER_TRX_ID PREVIOUS_CUSTOMER_TRX_ID ,
SHIP_TO_SITE_USE_ID SHIP_TO_SITE_USE_ID ,
NVL ( PRINTING_COUNT , 0 ) PRINTING_COUNT ,
PRINTING_ORIGINAL_DATE PRINTING_ORIGINAL_DATE ,
PRINTING_LAST_PRINTED PRINTING_LAST_PRINTED ,
PRINTING_PENDING PRINTING_PENDING ,
LAST_PRINTED_SEQUENCE_NUM LAST_PRINTED_SEQUENCE_NUMBER ,
START_DATE_COMMITMENT START_DATE_COMMITMENT ,
END_DATE_COMMITMENT END_DATE_COMMITMENT ,
INITIAL_CUSTOMER_TRX_ID INITIAL_CUSTOMER_TRX_ID ,
A . INVOICE_CURRENCY_CODE INVOICE_CURRENCY_CODE ,
A . REASON_CODE CREDIT_HEADER_REASON_CODE_CSTM ,
A . TERM_ID TERM_ID ,
A . SHIP_DATE_ACTUAL SHIP_DATE_ACTUAL ,
A . SHIP_VIA SHIP_VIA ,
A . WAYBILL_NUMBER WAYBILL_NUMBER ,
A . PURCHASE_ORDER PURCHASE_ORDER_NUMBER ,
A . PURCHASE_ORDER_REVISION PURCHASE_ORDER_REVISION ,
A . PURCHASE_ORDER_DATE PURCHASE_ORDER_DATE ,
A . CREATED_BY ORDER_CREATED_BY_CSTM ,
P . DUE_DATE TERM_DUE_DATE_FROM_PS ,
NVL ( TL . RELATIVE_AMOUNT , 100 ) * ( 100 / NVL ( T . BASE_AMOUNT , 100 ) ) TERM_RELATIVE_AMOUNT ,
T . NAME TERM_NAME ,
A . BILL_TO_CUSTOMER_ID BILL_TO_CUSTOMER_ID ,
A . BILL_TO_CONTACT_ID BILL_TO_CONTACT_ID ,
A . BILL_TO_SITE_USE_ID BILL_TO_SITE_USE_ID ,
U_BILL . LOCATION BILL_TO_LOCATION ,
SUBSTRB ( PARTY . PARTY_NAME , 1 , 50 ) BILL_CUST_NAME ,
RTRIM ( RPAD ( LOC . ADDRESS1 , 40 ) ) BILL_ADDRESS1 ,
RTRIM ( RPAD ( LOC . ADDRESS2 , 40 ) ) BILL_ADDRESS2 ,
RTRIM ( RPAD ( LOC . ADDRESS3 , 40 ) ) BILL_ADDRESS3 ,
RTRIM ( RPAD ( LOC . ADDRESS4 , 40 ) ) BILL_ADDRESS4 ,
LOC . CITY BILL_CITY , NVL ( LOC . STATE ,
LOC . PROVINCE ) BILL_STATE ,
LOC . POSTAL_CODE BILL_POSTAL_CODE ,
LOC . COUNTRY BILL_COUNTRY ,
U_BILL . TAX_REFERENCE BILL_SITE_TAX_REFERENCE ,
PARTY . TAX_REFERENCE BILL_CUST_TAX_REFERENCE ,
nvl(amount_line_items_original + decode(a.initial_customer_trx_id, '', 0, nvl(com_adj.amount,0)), to_number(null)) TRX_LINE_AMOUNT ,
nvl(tax_original, to_number(null)) TRX_TAX_AMOUNT ,
nvl(freight_original, to_number(null)) TRX_FREIGHT_AMOUNT ,
p.amount_due_original + decode(a.initial_customer_trx_id, '', 0, nvl(com_adj.amount,0)) TRX_ALL_AMOUNT ,
DECODE ( : P_ORDER_BY , 'TRX_NUMBER' , A . TRX_NUMBER , 'ADJUSTMENT_NUMBER' , A.TRX_NUMBER , 'CUSTOMER' , SUBSTRB ( PARTY . PARTY_NAME , 1 , 50 ) , 'POSTAL_CODE' , LOC . POSTAL_CODE , A . TRX_NUMBER ) ORDER_BY ,
LOC . ADDRESS1 BILL_TO_ADDRESS1 ,
LOC . ADDRESS2 BILL_TO_ADDRESS2 ,
LOC . ADDRESS3 BILL_TO_ADDRESS3 ,
LOC . ADDRESS4 BILL_TO_ADDRESS4 ,
LOC . STATE BILL_TO_STATE ,
LOC . PROVINCE BILL_TO_PROVINCE ,
T . description Term_Description ,
a . org_id ,
a . created_from
FROM
AR_ADJUSTMENTS COM_ADJ,
AR_PAYMENT_SCHEDULES P,
RA_CUST_TRX_LINE_GL_DIST REC,
RA_CUSTOMER_TRX A,
HZ_CUST_ACCOUNTS B,
RA_TERMS T,
RA_TERMS_LINES TL,
RA_CUST_TRX_TYPES TYPES,
AR_LOOKUPS L_TYPES,
HZ_PARTIES PARTY,
HZ_CUST_ACCT_SITES A_BILL,
HZ_PARTY_SITES PARTY_SITE,
HZ_LOCATIONS LOC,
HZ_CUST_SITE_USES U_BILL
WHERE
A.BILL_TO_CUSTOMER_ID = B.CUST_ACCOUNT_ID AND
REC.CUSTOMER_TRX_ID = A.CUSTOMER_TRX_ID AND
REC.LATEST_REC_FLAG = 'Y' AND
REC.ACCOUNT_CLASS = 'REC' AND
P.PAYMENT_SCHEDULE_ID + DECODE ( P.CLASS , 'INV' , 0 , '' ) = COM_ADJ.PAYMENT_SCHEDULE_ID (+) AND
COM_ADJ.SUBSEQUENT_TRX_ID IS NULL AND 'C' = COM_ADJ.ADJUSTMENT_TYPE (+) AND
A.COMPLETE_FLAG = 'Y' AND
A.CUST_TRX_TYPE_ID = TYPES.CUST_TRX_TYPE_ID AND
L_TYPES.LOOKUP_TYPE = 'INV/CM/ADJ' AND
A.PRINTING_OPTION IN ( 'PRI' , 'REP' ) AND
L_TYPES.LOOKUP_CODE = DECODE ( TYPES.TYPE , 'DEP' , 'INV' , TYPES.TYPE ) AND
NVL ( P.TERMS_SEQUENCE_NUMBER , nvl ( TL.SEQUENCE_NUM , 0 ) ) = nvl ( TL.SEQUENCE_NUM , nvl ( p.terms_sequence_number , 0 ) ) AND
DECODE ( P.PAYMENT_SCHEDULE_ID , '' , 0 , NVL ( T.PRINTING_LEAD_DAYS , 0 ) ) = 0 AND
A.BILL_TO_SITE_USE_ID = U_BILL.SITE_USE_ID AND
U_BILL.CUST_ACCT_SITE_ID = A_BILL.CUST_ACCT_SITE_ID AND
A_BILL.party_site_id = party_site.party_site_id AND
B.PARTY_ID = PARTY.PARTY_ID AND
loc.location_id = party_site.location_id AND
NVL ( P.AMOUNT_DUE_REMAINING , 0 ) <> 0 AND
A.CUST_TRX_TYPE_ID = 2526 AND
TYPES.TYPE = 'INV' AND
A.TERM_ID = TL.TERM_ID (+) AND
A.TERM_ID = T.TERM_ID (+) AND
A.CUSTOMER_TRX_ID = P.CUSTOMER_TRX_ID (+) AND
A.PRINTING_PENDING = 'Y' AND
NVL ( TL.SEQUENCE_NUM , 1 ) > NVL ( A.LAST_PRINTED_SEQUENCE_NUM , 0 ) and 1 = 1 AND
NOT EXISTS ( SELECT 'X' from ECE_TP_DETAILS ETD ,
ECE_TP_HEADERS ETH
WHERE
ETH.TP_HEADER_ID = A_BILL.TP_HEADER_ID AND
ETD.TP_HEADER_ID = ETH.TP_HEADER_ID AND
ETD.EDI_FLAG = 'Y' AND
ETD.DOCUMENT_ID = 'INO' AND
ETD.DOCUMENT_TYPE = DECODE ( TYPES.TYPE , 'CM' , DECODE ( A.PREVIOUS_CUSTOMER_TRX_ID , NULL , 'OACM' , 'CM' ) , TYPES.TYPE ) ) AND
A.PRINTING_OPTION IN ( 'PRI' , 'REP' ) AND
T.NAME not like 'PB%' AND
1 = 1 AND
MIT_AR.GE_AR_COAKLEY_ELIGIBLE ( 'NEW' , P.CUSTOMER_TRX_ID , A.ORG_ID ) = 0 AND
A.org_id = TYPES.org_id UNION SELECT /*+ NO_INDEX(A, RA_CUSTOMER_TRX_N11 ) USE_NL(TYPES,A) */
a.customer_trx_id , a.trx_number ,
A . INTERFACE_HEADER_ATTRIBUTE5 ,
A . INTERFACE_HEADER_CONTEXT ,
A . INTERFACE_HEADER_ATTRIBUTE11 ,
NVL ( P . TERMS_SEQUENCE_NUMBER , 1 ) ,
types.type , l_types.meaning ,
TYPES . ACCOUNTING_AFFECT_FLAG ,
a.trx_date ,
A . SHIP_TO_CUSTOMER_ID ,
A . SHIP_TO_CONTACT_ID ,
A . REMIT_TO_ADDRESS_ID ,
A . PRIMARY_SALESREP_ID ,
B . ACCOUNT_NUMBER ,
A . INTERNAL_NOTES ,
A . COMMENTS ,
PREVIOUS_CUSTOMER_TRX_ID ,
SHIP_TO_SITE_USE_ID ,
NVL ( PRINTING_COUNT , 0 ) ,
PRINTING_ORIGINAL_DATE ,
PRINTING_LAST_PRINTED ,
PRINTING_PENDING ,
LAST_PRINTED_SEQUENCE_NUM ,
START_DATE_COMMITMENT ,
END_DATE_COMMITMENT ,
INITIAL_CUSTOMER_TRX_ID ,
A . INVOICE_CURRENCY_CODE ,
A . REASON_CODE ,
A . TERM_ID ,
A . SHIP_DATE_ACTUAL ,
A . SHIP_VIA ,
A . WAYBILL_NUMBER ,
A . PURCHASE_ORDER ,
A . PURCHASE_ORDER_REVISION ,
A . PURCHASE_ORDER_DATE ,
A . CREATED_BY ,
P . DUE_DATE ,
NVL ( TL . RELATIVE_AMOUNT , 100 ) * ( 100 / NVL ( T . BASE_AMOUNT , 100 ) ) ,
T . NAME , A . BILL_TO_CUSTOMER_ID ,
A . BILL_TO_CONTACT_ID ,
A . BILL_TO_SITE_USE_ID ,
U_BILL . LOCATION BILL_TO_LOCATION ,
SUBSTRB ( PARTY . PARTY_NAME , 1 , 50 ) BILL_CUST_NAME ,
RTRIM ( RPAD ( LOC . ADDRESS1 , 40 ) ) ,
RTRIM ( RPAD ( LOC . ADDRESS2 , 40 ) ) ,
RTRIM ( RPAD ( LOC . ADDRESS3 , 40 ) ) ,
RTRIM ( RPAD ( LOC . ADDRESS4 , 40 ) ) ,
LOC . CITY ,
NVL ( LOC . STATE , LOC . PROVINCE ) ,
LOC . POSTAL_CODE ,
LOC . COUNTRY ,
U_BILL . TAX_REFERENCE ,
PARTY . TAX_REFERENCE ,
nvl(amount_line_items_original + decode(a.initial_customer_trx_id, '', 0, nvl(com_adj.amount,0)), to_number(null)) ,
nvl(tax_original, to_number(null)) ,
nvl(freight_original, to_number(null)) ,
p.amount_due_original + decode(a.initial_customer_trx_id, '', 0, nvl(com_adj.amount,0)) ,
DECODE ( : P_ORDER_BY , 'TRX_NUMBER' ,
A . TRX_NUMBER , 'ADJUSTMENT_NUMBER' ,
A.TRX_NUMBER , 'CUSTOMER' ,
SUBSTRB ( PARTY . PARTY_NAME , 1 , 50 ) , 'POSTAL_CODE' ,
LOC . POSTAL_CODE , A . TRX_NUMBER ) ORDER_BY ,
LOC . ADDRESS1 ,
LOC . ADDRESS2 ,
LOC . ADDRESS3 ,
LOC . ADDRESS4 ,
LOC . STATE ,
LOC . PROVINCE ,
T . description ,
a . org_id ,
a . created_from
FROM
RA_TERMS_LINES TL,
RA_CUST_TRX_TYPES TYPES,
AR_LOOKUPS L_TYPES,
HZ_CUST_ACCOUNTS B,
HZ_PARTIES PARTY,
HZ_CUST_SITE_USES U_BILL,
HZ_CUST_ACCT_SITES A_BILL,
HZ_PARTY_SITES PARTY_SITE,
HZ_LOCATIONS LOC,
AR_ADJUSTMENTS COM_ADJ,
RA_CUSTOMER_TRX A,
AR_PAYMENT_SCHEDULES P,
RA_TERMS T
WHERE
A.BILL_TO_CUSTOMER_ID = B.CUST_ACCOUNT_ID
AND P.PAYMENT_SCHEDULE_ID + DECODE ( P.CLASS , 'INV' , 0 , '' ) = COM_ADJ.PAYMENT_SCHEDULE_ID (+) AND
COM_ADJ.SUBSEQUENT_TRX_ID IS NULL AND
'C' = COM_ADJ.ADJUSTMENT_TYPE (+) AND
A.COMPLETE_FLAG = 'Y' AND
A.CUSTOMER_TRX_ID = P.CUSTOMER_TRX_ID AND
A.CUST_TRX_TYPE_ID = TYPES.CUST_TRX_TYPE_ID AND
L_TYPES.LOOKUP_TYPE = 'INV/CM/ADJ' AND
A.PRINTING_OPTION IN ( 'PRI' , 'REP' ) AND
L_TYPES.LOOKUP_CODE = DECODE ( TYPES.TYPE , 'DEP' , 'INV' , TYPES.TYPE ) AND
NVL ( T.PRINTING_LEAD_DAYS , 0 ) > 0 AND
A.BILL_TO_SITE_USE_ID = U_BILL.SITE_USE_ID AND
U_BILL.CUST_ACCT_SITE_ID = A_BILL.CUST_ACCT_SITE_ID AND
A_BILL.PARTY_SITE_ID = PARTY_SITE.PARTY_SITE_ID AND
B.PARTY_ID = PARTY.PARTY_ID AND
LOC.LOCATION_ID = PARTY_SITE.LOCATION_ID AND
NVL ( P.TERMS_SEQUENCE_NUMBER , TL.SEQUENCE_NUM ) = TL.SEQUENCE_NUM AND
NVL ( P.AMOUNT_DUE_REMAINING , 0 ) <> 0 AND
A.CUST_TRX_TYPE_ID = 2526 AND
TYPES.TYPE = 'INV' AND
T.TERM_ID = P.TERM_ID AND
TL.TERM_ID (+) = T.TERM_ID AND
A.PRINTING_PENDING = 'Y' AND
P.TERMS_SEQUENCE_NUMBER > NVL ( A.LAST_PRINTED_SEQUENCE_NUM , 0 ) and 1 = 1 AND
NOT EXISTS ( SELECT 'X' from
ECE_TP_DETAILS ETD ,
ECE_TP_HEADERS ETH
WHERE
ETH.TP_HEADER_ID = A_BILL.TP_HEADER_ID AND
ETD.TP_HEADER_ID = ETH.TP_HEADER_ID AND
ETD.EDI_FLAG = 'Y' AND
ETD.DOCUMENT_ID = 'INO' AND
ETD.DOCUMENT_TYPE = DECODE ( TYPES.TYPE , 'CM' , DECODE ( A.PREVIOUS_CUSTOMER_TRX_ID , NULL , 'OACM' , 'CM' ) , TYPES.TYPE ) ) AND
NVL ( A.PRINTING_OPTION , 'REP' ) IN ( 'PRI' , 'REP' ) AND
T.NAME not like 'PB%' AND 1 = 1 AND
MIT_AR.GE_AR_COAKLEY_ELIGIBLE ( 'NEW' , P.CUSTOMER_TRX_ID , A.ORG_ID ) = 0 AND
A.org_id = TYPES.org_id
ORDER BY 60 ASC,68 ASC,2 ASC,3 ASC,4 ASC,5 ASC,44 ASC
call count cpu elapsed disk query current rows
Parse 1 0.06 0.08 0 364 0 0
Execute 1 5.11 4.98 0 0 0 0
Fetch 18 81.35 1375.73 203636 357435 0 34
total 20 86.52 1380.80 203636 357799 0 34
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 25
Number of plan statistics captured: 1
Rows (1st) Rows (avg) Rows (max) Row Source Operation
34 34 34 SORT UNIQUE (cr=569992 pr=227554 pw=0 time=1658548772 us)
34 34 34 UNION-ALL (cr=569992 pr=227554 pw=0 time=773822949 us)
34 34 34 FILTER (cr=228022 pr=107808 pw=0 time=773820837 us)
34 34 34 FILTER (cr=228022 pr=107808 pw=0 time=773820394 us)
34 34 34 NESTED LOOPS OUTER (cr=228022 pr=107808 pw=0 time=771070499 us)
34 34 34 NESTED LOOPS (cr=227986 pr=107806 pw=0 time=773799735 us)
34 34 34 NESTED LOOPS (cr=227882 pr=107806 pw=0 time=773742298 us)
34 34 34 NESTED LOOPS (cr=227812 pr=107806 pw=0 time=773688021 us)
34 34 34 NESTED LOOPS (cr=227708 pr=107806 pw=0 time=773636699 us)
34 34 34 FILTER (cr=227638 pr=107806 pw=0 time=773566978 us)
4616 4616 4616 NESTED LOOPS OUTER (cr=220679 pr=106836 pw=0 time=823009777 us)
4610 4610 4610 NESTED LOOPS (cr=206836 pr=102712 pw=0 time=623651066 us)
4610 4610 4610 NESTED LOOPS (cr=188367 pr=96450 pw=0 time=531982352 us)
4610 4610 4610 NESTED LOOPS (cr=179145 pr=96449 pw=0 time=530980660 us)
4610 4610 4610 FILTER (cr=165290 pr=96448 pw=0 time=529149297 us)
4610 4610 4610 NESTED LOOPS OUTER (cr=165290 pr=96448 pw=0 time=530066499 us)
4607 4607 4607 NESTED LOOPS (cr=156074 pr=96442 pw=0 time=762671095 us)
4615 4615 4615 NESTED LOOPS (cr=146842 pr=96441 pw=0 time=751255741 us)
4615 4615 4615 NESTED LOOPS (cr=137610 pr=96435 pw=0 time=751144978 us)
4615 4615 4615 NESTED LOOPS (cr=123763 pr=96435 pw=0 time=750949543 us)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_CUSTOMER_TRX_ALL (cr=114531 pr=96435 pw=0 time=750675597 us)
*329687 329687 329687 INDEX RANGE SCAN RA_CUSTOMER_TRX_N17 (cr=6232 pr=6046 pw=0 time=31982795 us)(object id 4788)* 4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_CUST_TRX_TYPES_ALL (cr=9232 pr=0 pw=0 time=239450 us)
4615 4615 4615 INDEX UNIQUE SCAN RA_CUST_TRX_TYPES_U1 (cr=4617 pr=0 pw=0 time=160139 us)(object id 55731)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID FND_LOOKUP_VALUES (cr=13847 pr=0 pw=0 time=180337 us)
4615 4615 4615 INDEX UNIQUE SCAN FND_LOOKUP_VALUES_U1 (cr=9232 pr=0 pw=0 time=135717 us)(object id 491822)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_TERMS_B (cr=9232 pr=6 pw=0 time=155074 us)
4615 4615 4615 INDEX UNIQUE SCAN RA_TERMS_B_U1 (cr=4617 pr=0 pw=0 time=60566 us)(object id 55734)
4607 4607 4607 TABLE ACCESS BY INDEX ROWID RA_TERMS_TL (cr=9232 pr=1 pw=0 time=181115 us)
4615 4615 4615 INDEX UNIQUE SCAN RA_TERMS_TL_U1 (cr=4617 pr=1 pw=0 time=82153 us)(object id 55755)
4610 4610 4610 TABLE ACCESS BY INDEX ROWID RA_TERMS_LINES (cr=9216 pr=6 pw=0 time=259864 us)
4610 4610 4610 INDEX RANGE SCAN RA_TERMS_LINES_U1 (cr=4609 pr=1 pw=0 time=104110 us)(object id 6703)
4610 4610 4610 TABLE ACCESS BY INDEX ROWID HZ_CUST_SITE_USES_ALL (cr=13855 pr=1 pw=0 time=1350357 us)
4610 4610 4610 INDEX UNIQUE SCAN HZ_CUST_SITE_USES_U1 (cr=9222 pr=1 pw=0 time=434079 us)(object id 44870)
4610 4610 4610 TABLE ACCESS BY INDEX ROWID HZ_CUST_ACCT_SITES_ALL (cr=9222 pr=1 pw=0 time=1024466 us)
4610 4610 4610 INDEX UNIQUE SCAN HZ_CUST_ACCT_SITES_U1 (cr=4612 pr=1 pw=0 time=337477 us)(object id 46883)
4610 4610 4610 TABLE ACCESS BY INDEX ROWID RA_CUST_TRX_LINE_GL_DIST_ALL (cr=18469 pr=6262 pw=0 time=86754686 us)
4610 4610 4610 INDEX RANGE SCAN RA_CUST_TRX_LINE_GL_DIST_N6 (cr=13836 pr=4061 pw=0 time=55844483 us)(object id 1510967)
4616 4616 4616 TABLE ACCESS BY INDEX ROWID AR_PAYMENT_SCHEDULES_ALL (cr=13843 pr=4124 pw=0 time=50689789 us)
4616 4616 4616 INDEX RANGE SCAN AR_PAYMENT_SCHEDULES_N2 (cr=9233 pr=1494 pw=0 time=15169412 us)(object id 4877)
34 34 34 TABLE ACCESS BY INDEX ROWID HZ_CUST_ACCOUNTS (cr=70 pr=0 pw=0 time=24450 us)
34 34 34 INDEX UNIQUE SCAN HZ_CUST_ACCOUNTS_U1 (cr=36 pr=0 pw=0 time=5962 us)(object id 85278)
34 34 34 TABLE ACCESS BY INDEX ROWID HZ_PARTY_SITES (cr=104 pr=0 pw=0 time=58609 us)
34 34 34 INDEX UNIQUE SCAN HZ_PARTY_SITES_U1 (cr=70 pr=0 pw=0 time=31189 us)(object id 45527)
34 34 34 TABLE ACCESS BY INDEX ROWID HZ_LOCATIONS (cr=70 pr=0 pw=0 time=52502 us)
34 34 34 INDEX UNIQUE SCAN HZ_LOCATIONS_U1 (cr=36 pr=0 pw=0 time=23883 us)(object id 45692)
34 34 34 TABLE ACCESS BY INDEX ROWID HZ_PARTIES (cr=104 pr=0 pw=0 time=49042 us)
34 34 34 INDEX UNIQUE SCAN HZ_PARTIES_U1 (cr=70 pr=0 pw=0 time=22106 us)(object id 757879)
0 0 0 TABLE ACCESS BY INDEX ROWID AR_ADJUSTMENTS_ALL (cr=36 pr=2 pw=0 time=19638 us)
0 0 0 INDEX RANGE SCAN AR_ADJUSTMENTS_N3 (cr=36 pr=2 pw=0 time=19271 us)(object id 5473)
0 0 0 NESTED LOOPS (cr=0 pr=0 pw=0 time=9 us)
0 0 0 INDEX UNIQUE SCAN ECE_TP_HEADERS_U1 (cr=0 pr=0 pw=0 time=7 us)(object id 46119)
0 0 0 TABLE ACCESS BY INDEX ROWID ECE_TP_DETAILS (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN ECE_TP_DETAILS_U2 (cr=0 pr=0 pw=0 time=0 us)(object id 6271)
0 0 0 FILTER (cr=341970 pr=119746 pw=0 time=883424760 us)
0 0 0 FILTER (cr=341970 pr=119746 pw=0 time=883424758 us)
0 0 0 NESTED LOOPS OUTER (cr=341970 pr=119746 pw=0 time=883424757 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424752 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424749 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424742 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424740 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424735 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424731 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424726 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424724 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424721 us)
0 0 0 NESTED LOOPS (cr=341970 pr=119746 pw=0 time=883424715 us)
34 34 34 NESTED LOOPS (cr=341900 pr=119746 pw=0 time=882400482 us)
4615 4615 4615 NESTED LOOPS (cr=123763 pr=93484 pw=0 time=674293279 us)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_CUSTOMER_TRX_ALL (cr=114531 pr=93484 pw=0 time=674030164 us)
329687 329687 329687 INDEX RANGE SCAN RA_CUSTOMER_TRX_N17 (cr=6232 pr=6130 pw=0 time=36621510 us)(object id 4788)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_CUST_TRX_TYPES_ALL (cr=9232 pr=0 pw=0 time=249893 us)
4615 4615 4615 INDEX UNIQUE SCAN RA_CUST_TRX_TYPES_U1 (cr=4617 pr=0 pw=0 time=169485 us)(object id 55731)
34 34 34 TABLE ACCESS BY INDEX ROWID AR_PAYMENT_SCHEDULES_ALL (cr=218137 pr=26262 pw=0 time=310068873 us)
3304 3304 3304 INDEX RANGE SCAN AR_PAYMENT_SCHEDULES_N2 (cr=214841 pr=24355 pw=0 time=283359418 us)(object id 4877)
0 0 0 TABLE ACCESS BY INDEX ROWID RA_TERMS_B (cr=70 pr=0 pw=0 time=829 us)
34 34 34 INDEX UNIQUE SCAN RA_TERMS_B_U1 (cr=36 pr=0 pw=0 time=527 us)(object id 55734)
0 0 0 TABLE ACCESS BY INDEX ROWID HZ_CUST_SITE_USES_ALL (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN HZ_CUST_SITE_USES_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 44870)
0 0 0 TABLE ACCESS BY INDEX ROWID HZ_CUST_ACCT_SITES_ALL (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN HZ_CUST_ACCT_SITES_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 46883)
0 0 0 TABLE ACCESS BY INDEX ROWID HZ_CUST_ACCOUNTS (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN HZ_CUST_ACCOUNTS_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 85278)
0 0 0 TABLE ACCESS BY INDEX ROWID HZ_PARTIES (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN HZ_PARTIES_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 757879)
0 0 0 TABLE ACCESS BY INDEX ROWID HZ_PARTY_SITES (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN HZ_PARTY_SITES_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 45527)
0 0 0 TABLE ACCESS BY INDEX ROWID HZ_LOCATIONS (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN HZ_LOCATIONS_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 45692)
0 0 0 TABLE ACCESS BY INDEX ROWID RA_TERMS_TL (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN RA_TERMS_TL_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 55755)
0 0 0 TABLE ACCESS BY INDEX ROWID RA_TERMS_LINES (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX RANGE SCAN RA_TERMS_LINES_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 6703)
0 0 0 TABLE ACCESS BY INDEX ROWID FND_LOOKUP_VALUES (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN FND_LOOKUP_VALUES_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 491822)
0 0 0 TABLE ACCESS BY INDEX ROWID AR_ADJUSTMENTS_ALL (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX RANGE SCAN AR_ADJUSTMENTS_N3 (cr=0 pr=0 pw=0 time=0 us)(object id 5473)
0 0 0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN ECE_TP_HEADERS_U1 (cr=0 pr=0 pw=0 time=0 us)(object id 46119)
0 0 0 TABLE ACCESS BY INDEX ROWID ECE_TP_DETAILS (cr=0 pr=0 pw=0 time=0 us)
0 0 0 INDEX UNIQUE SCAN ECE_TP_DETAILS_U2 (cr=0 pr=0 pw=0 time=0 us)(object id 6271)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
row cache lock 6 0.00 0.00
SQL*Net message to client 18 0.00 0.00
SQL*Net more data to client 2 0.00 0.00
gc current block 2-way 5375 0.02 3.76
gc cr grant 2-way 49175 0.05 24.09
db file sequential read 203636 0.51 1289.70
gcs drm freeze in enter server mode 7 0.28 1.30
latch: KCL gc element parent latch 4 0.00 0.00
gc remaster 2 0.07 0.12
latch: gcs resource hash 26 0.00 0.00
latch free 1 0.00 0.00
gc cr block 2-way 9 0.00 0.00
latch: cache buffers chains 1 0.00 0.00
SQL*Net message from client 18 0.00 0.00
Thanks in Advance..Hi,
it looks like your problem stems from the wrong choice of the driving table:
4615 4615 4615 NESTED LOOPS (cr=123763 pr=96435 pw=0 time=750949543 us)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_CUSTOMER_TRX_ALL (cr=114531 pr=96435 pw=0 time=750675597 us)
329687 329687 329687 INDEX RANGE SCAN RA_CUSTOMER_TRX_N17 (cr=6232 pr=6046 pw=0 time=31982795 us)(object id 4788) 4615 4615 4615 TABLE ACCESS BY INDEX ROWID RA_CUST_TRX_TYPES_ALL (cr=9232 pr=0 pw=0 time=239450 us)
4615 4615 4615 INDEX UNIQUE SCAN RA_CUST_TRX_TYPES_U1 (cr=4617 pr=0 pw=0 time=160139 us)(object id 55731)
4615 4615 4615 TABLE ACCESS BY INDEX ROWID FND_LOOKUP_VALUES (cr=13847 pr=0 pw=0 time=180337 us)Here, you are spending 750 seconds retriveing 329k rows, 98% of which are rejected on the next step. And the reason this is happening is because the optimizer underestimates the cardinatlity of this step by a factor of x50 (6.2k estimated, 329k actual value). Find out why this is happening or post relevant diagnostic information here (predicates, columns stats etc.), and fix this -- this should make your query twice as fast.
The second half is coming from the SORT UNIQUE step. This looks weird: why on Earth it would take over 800 seconds to sort 34 rows?! Maybe there is something in the plan that I'm missing -- it's really hard to read because it's not formatted. Please obtain a plan with rowsource stats using dbms_xplan.display_cursor and post it here (google dbms_xplan.display_cursor allstats last if not sure how to do that).
Best regards,
Nikolay -
Please reply for the query tuning
Hi, i am a beginner in oracle dba, I have to know if i have studied little bit about query tuning in ORACLE.
I wanna know if i have the following query and its plan then how it can be tuned:
QUERY:
SELECT z.emplid ,h.first_name || ' ' || h.last_name ,z.grade ,z.DEPTID ,z.LOCATION
FROM sysadm.ps_lnt_latestbu_vw z, sysadm.ps_personal_data h
WHERE z.empl_status ='A' --index access
AND z.emplid = h.emplid --join
and z.emplid not in (select g.emplid from sysadm.ps_lnt_asn_skl_tbl g) --join
and z.Business_unit=
( select l.lnt_subunit from sysadm.ps_position_data l where l.position_nbr in
( select b.position_nbr from sysadm.ps_job b,sysadm.psoprdefn y
where b.effdt=( select max(g.effdt) from sysadm.ps_job g
where g.emplid=b.emplid --join costs high
and g.effdt<=SYSDATE) --filter/index
and b.effseq=
(select max(h.effseq) from sysadm.ps_job h
where h.emplid=b.emplid --join costs high
and h.effdt=b.effdt) --join costs high
and b.empl_rcd=0 --filter/index access
and y.EMPLID=b.EMPLID --join
and y.OPRID='1112' -- filter/index access
order by z.emplid
/AND its plan is:
Execution Plan
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=1 Bytes=64)
1 0 SORT (ORDER BY) (Cost=6 Card=1 Bytes=64)
2 1 NESTED LOOPS (ANTI) (Cost=4 Card=1 Bytes=64)
3 2 NESTED LOOPS (Cost=3 Card=1 Bytes=56)
4 3 VIEW OF 'PS_LNT_LATESTBU_VW' (Cost=2 Card=1 Bytes=31)
5 4 UNION-ALL
6 5 CONCATENATION
7 6 TABLE ACCESS (BY INDEX ROWID) OF 'PS_POSITION_DATA' (Cost=5 Card=90 Bytes=1890)
8 7 NESTED LOOPS
9 8 NESTED LOOPS (Cost=275 Card=1 Bytes=90)
10 9 NESTED LOOPS (Cost=275 Card=1 Bytes=82)
11 10 TABLE ACCESS (BY INDEX ROWID) OF 'PS_JOB' (Cost=3 Card=1 Bytes=50)
12 11 INDEX (RANGE SCAN) OF 'PS2JOB' (NON-UNIQUE) (Cost=2 Card=1)
13 12 SORT (AGGREGATE)
14 13 FIRST ROW (Cost=3 Card=1 Bytes=19)
15 14 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
16 12 SORT (AGGREGATE)
17 16 FIRST ROW (Cost=3 Card=1 Bytes=22)
18 17 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
19 10 INDEX (UNIQUE SCAN) OF 'PS_EMPLOYMENT'(UNIQUE)
20 9 INDEX (UNIQUE SCAN) OF 'PS_PERSONAL_DATA' (UNIQUE)
21 8 INDEX (RANGE SCAN) OF 'PS_POSITION_DATA' (UNIQUE) (Cost=5 Card=90)
22 6 FILTER
23 22 NESTED LOOPS (Cost=275 Card=1 Bytes=90)
24 23 NESTED LOOPS (Cost=275 Card=1 Bytes=82)
25 24 NESTED LOOPS (Cost=275 Card=1 Bytes=71)
26 25 INDEX (FAST FULL SCAN) OF 'PS8POSITION_DATA' (NON-UNIQUE) (Cost=5 Card=90 Bytes=1890)
27 25 TABLE ACCESS (BY INDEX ROWID) OF 'PS_JOB' (Cost=3 Card=1 Bytes=50)
28 27 INDEX (RANGE SCAN) OF 'PS2JOB' (NON-UNIQUE) (Cost=2 Card=1)
29 28 SORT (AGGREGATE)
30 29 FIRST ROW (Cost=3 Card=1 Bytes=22)
31 30 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
32 28 SORT (AGGREGATE)
33 32 FIRST ROW (Cost=3 Card=1 Bytes=19)
34 33 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
35 24 INDEX (UNIQUE SCAN) OF 'PS_EMPLOYMENT' (UNIQUE)
36 23 INDEX (UNIQUE SCAN) OF 'PS_PERSONAL_DATA'(UNIQUE)
37 22 SORT (AGGREGATE)
38 37 FIRST ROW (Cost=2 Card=1 Bytes=17)
39 38 INDEX (RANGE SCAN (MIN/MAX)) OF 'PS_POSITION_DATA' (UNIQUE) (Cost=2 Card=9000)
40 5 FILTER
41 40 NESTED LOOPS (Cost=751 Card=1 Bytes=191)
42 41 NESTED LOOPS (OUTER) (Cost=750 Card=1 Bytes=167)
43 42 NESTED LOOPS (OUTER) (Cost=749 Card=1 Bytes=143)
44 43 NESTED LOOPS (Cost=748 Card=1 Bytes=134)
45 44 NESTED LOOPS (Cost=748 Card=1 Bytes=123)
46 45 NESTED LOOPS (Cost=748 Card=1 Bytes=119)
47 46 NESTED LOOPS (Cost=747 Card=1 Bytes=98)
48 47 NESTED LOOPS (Cost=744 Card=1 Bytes=62)
49 48 NESTED LOOPS (Cost=744 Card=1Bytes=54)
50 49 VIEW OF 'PS_LNTPRJOBSYSJRVW'(Cost=741 Card=1 Bytes=9)
51 50 FILTER
52 51 NESTED LOOPS (OUTER) (Cost=735 Card=1 Bytes=68)
53 52 NESTED LOOPS (Cost=734Card=1 Bytes=51)
54 53 NESTED LOOPS (Cost=734 Card=1 Bytes=43)
55 54 TABLE ACCESS (BY INDEX ROWID) OF 'PS_JOB' (Cost=734 Card=1 Bytes=32)
56 55 INDEX (RANGE SCAN) OF 'PSCJOB' (NON-UNIQUE) (Cost=206 Card=1013)
57 54 INDEX (UNIQUE SCAN) OF 'PS_EMPLOYMENT' (UNIQUE)
58 53 INDEX (UNIQUE SCAN) OF 'PS_PERSONAL_DATA' (UNIQUE)
59 52 INDEX (RANGE SCAN) OF'PS_POSITION_DATA' (UNIQUE) (Cost=1 Card=1 Bytes=17)
60 51 SORT (AGGREGATE)
61 60 FIRST ROW (Cost=3 Card=1 Bytes=19)
62 61 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
63 51 SORT (AGGREGATE)
64 63 FIRST ROW (Cost=3 Card=1 Bytes=22)
65 64 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
66 51 SORT (AGGREGATE)
67 66 FIRST ROW (Cost=2 Card=1 Bytes=17)
68 67 INDEX (RANGE SCAN (MIN/MAX)) OF 'PS_POSITION_DATA' (UNIQUE) (Cost=2 Card=9000)
69 49 TABLE ACCESS (BY INDEX ROWID) OF 'PS_JOB' (Cost=3 Card=1 Bytes=45)
70 69 INDEX (RANGE SCAN) OF 'PSAJOB' (NON-UNIQUE) (Cost=2 Card=1)
71 70 SORT (AGGREGATE)
72 71 INDEX (RANGE SCAN) OF'PSAJOB' (NON-UNIQUE) (Cost=3 Card=1 Bytes=19)
73 72 SORT (AGGREGATE)
74 73 FIRST ROW (Cost=3Card=8 Bytes=88)
75 74 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=25963)
76 70 SORT (AGGREGATE)
77 76 FIRST ROW (Cost=3 Card=8 Bytes=88)
78 77 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=25963)
79 48 INDEX (UNIQUE SCAN) OF 'PS_PERSONAL_DATA' (UNIQUE)
80 47 TABLE ACCESS (BY INDEX ROWID) OF'PS_JOB' (Cost=3 Card=1 Bytes=36)
81 80 INDEX (RANGE SCAN) OF 'PSAJOB'(NON-UNIQUE) (Cost=2 Card=1)
82 81 SORT (AGGREGATE)
83 82 FIRST ROW (Cost=3 Card=1 Bytes=19)
84 83 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
85 81 SORT (AGGREGATE)
86 85 FIRST ROW (Cost=3 Card=1 Bytes=22)
87 86 INDEX (RANGE SCAN (MIN/MAX)) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=207700)
88 46 INDEX (RANGE SCAN) OF 'PS8POSITION_DATA' (NON-UNIQUE) (Cost=1 Card=1 Bytes=21)
89 45 INDEX (UNIQUE SCAN) OF 'PS_BUS_UNIT_TBL_HR' (UNIQUE)
90 44 INDEX (UNIQUE SCAN) OF 'PS_EMPLOYMENT'(UNIQUE)
91 43 INDEX (RANGE SCAN) OF 'PS_POSITION_DATA'(UNIQUE) (Cost=1 Card=1 Bytes=9)
92 42 INDEX (FULL SCAN) OF 'PS0LOCATION_TBL' (NON-UNIQUE) (Cost=1 Card=1 Bytes=24)
93 41 INDEX (RANGE SCAN) OF 'PS0LOCATION_TBL' (NON-UNIQUE) (Cost=1 Card=1 Bytes=24)
94 40 SORT (AGGREGATE)
95 94 FIRST ROW (Cost=2 Card=1 Bytes=17)
96 95 INDEX (RANGE SCAN (MIN/MAX)) OF 'PS_POSITION_DATA' (UNIQUE) (Cost=2 Card=9000)
97 4 TABLE ACCESS (BY INDEX ROWID) OF 'PS_POSITION_DATA' (Cost=2 Card=1 Bytes=13)
98 97 NESTED LOOPS (Cost=9 Card=1 Bytes=19)
99 98 VIEW OF 'VW_NSO_1' (Cost=5 Card=1 Bytes=6)
100 99 SORT (UNIQUE)
101 100 NESTED LOOPS (Cost=5 Card=1 Bytes=44)
102 101 TABLE ACCESS (BY INDEX ROWID) OF 'PSOPRDEFN' (Cost=2 Card=1 Bytes=14)
103 102 INDEX (UNIQUE SCAN) OF 'PS_PSOPRDEFN'(UNIQUE) (Cost=1 Card=1)
104 101 TABLE ACCESS (BY INDEX ROWID) OF 'PS_JOB' (Cost=3 Card=1 Bytes=30)
105 104 INDEX (RANGE SCAN) OF 'PSAJOB' (NON-UNIQUE) (Cost=2 Card=1)
106 105 SORT (AGGREGATE)
107 106 INDEX (RANGE SCAN) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=8 Bytes=128)
108 105 SORT (AGGREGATE)
109 108 INDEX (RANGE SCAN) OF 'PSAJOB' (NON-UNIQUE) (Cost=3 Card=1 Bytes=19)
110 98 INDEX (RANGE SCAN) OF 'PS_POSITION_DATA' (UNIQUE) (Cost=1 Card=1)
111 3 TABLE ACCESS (BY INDEX ROWID) OF 'PS_PERSONAL_DATA'(Cost=1 Card=1 Bytes=25)
112 111 INDEX (UNIQUE SCAN) OF 'PS_PERSONAL_DATA' (UNIQUE)
113 2 INDEX (RANGE SCAN) OF 'PS_LNT_ASN_SKL_TBL' (UNIQUE) (Cost=1 Card=10076 Bytes=80608)
Statistics
70 recursive calls
0 db block gets
1186931 consistent gets
5660 physical reads
60 redo size
462 bytes sent via SQL*Net to client
373 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
0 rows processedMy thoughts for this is:
1. NLJ high cost -- rewrite inner sub-query
2. sort is done for each join for max function every time so, therefore try use use sort merge hint
3. h alias has been referenced twice for table name.
PLEASE TELL ME WHAT TO DO IF I AM ORACLE DBA.
Thanks in advance.
Edited by: user2060331 on Mar 25, 2010 9:17 AM
Edited by: user2060331 on Mar 25, 2010 9:21 AM
Edited by: user2060331 on Mar 25, 2010 9:32 AM
Edited by: user2060331 on Mar 25, 2010 9:47 AMNo it's not. You should see indentations for each level of the explain plan. You've lost all of it. It should look like this (not your query):
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes | Cost | Inst |IN-OUT|
| 0 | SELECT STATEMENT | | 16116 | 2911K| 712 | | |
| 1 | FILTER | | | | | | |
| 2 | CONNECT BY WITH FILTERING | | | | | | |
| 3 | FILTER | | | | | | |
| 4 | COUNT | | | | | | |
| 5 | HASH JOIN RIGHT OUTER | | 16116 | 2911K| 712 | | |
| 6 | REMOTE | LSW_USR_GRP_XREF | 518 | 13986 | 4 | MYPROJ~ | R->S |
| 7 | HASH JOIN RIGHT OUTER | | 16116 | 2486K| 707 | | |
| 8 | REMOTE | LSW_USR_XREF | 222 | 2886 | 4 | MYPROJ~ | R->S |
| 9 | HASH JOIN RIGHT OUTER| | 16116 | 2282K| 702 | | |
| 10 | TABLE ACCESS FULL | MYPROJ_PROCESS_MAP | 176 | 4752 | 4 | | |
| 11 | HASH JOIN OUTER | | 16116 | 1857K| 698 | | |
| 12 | TABLE ACCESS FULL | MYPROJ_MPPA | 16116 | 1243K| 71 | | |
| 13 | REMOTE | LSW_TASK | 80730 | 3074K| 625 | MYPROJ~ | R->S |
| 14 | HASH JOIN | | | | | | |
| 15 | CONNECT BY PUMP | | | | | | |
| 16 | COUNT | | | | | | |
| 17 | HASH JOIN RIGHT OUTER | | 16116 | 2911K| 712 | | |
| 18 | REMOTE | LSW_USR_GRP_XREF | 518 | 13986 | 4 | MYPROJ~ | R->S |
| 19 | HASH JOIN RIGHT OUTER | | 16116 | 2486K| 707 | | |
| 20 | REMOTE | LSW_USR_XREF | 222 | 2886 | 4 | MYPROJ~ | R->S |
| 21 | HASH JOIN RIGHT OUTER| | 16116 | 2282K| 702 | | |
| 22 | TABLE ACCESS FULL | MYPROJ_PROCESS_MAP | 176 | 4752 | 4 | | |
| 23 | HASH JOIN OUTER | | 16116 | 1857K| 698 | | |
| 24 | TABLE ACCESS FULL | MYPROJ_MPPA | 16116 | 1243K| 71 | | |
| 25 | REMOTE | LSW_TASK | 80730 | 3074K| 625 | MYPROJ~ | R->S |
---------------------------------------------------------------------------------------------------
Maybe you are looking for
-
How do I stop icloud music from playing on my iPhone?
Currently I have no music on my iPhone as I primarily use spotify. The only music is from iCloud, some of it I don't even remember downloading in the first place. How can I stop this from downloading to my iPhone? Also, when I press the pause with my
-
Hi, I am getting below error in SharePoint PPS 2013 Dashboard Designer. While create the Analysis Service by using "PROVIDER="MSOLAP";DATA SOURCE="http://testpivot2013:9090/Source%20Documents/TestSSource.xlsx" "An error occurred connecting to this da
-
Stuck in Restart Loop after Software Update
I recently ran the update to 10.5.3 a few days ago, and thankfully, it's been working great... until today, when I installed two seemingly innocuous updates via Software Update: one for the latest version of Quicktime and another for Apple Brother Pr
-
Vista not showing up in startup disc pref?
I have Vista 64bit Business installed, via a bootcamp partition on a second internal drive on my 8 Core Mac Pro, which is running 10.6.2. Occasionlly I will use VMware fusion running off my bootcamp partition, but yesterday when I tried this, vmware
-
Firefox is eating up my memory
Initially Firefox uses <100,000kb of memory when first opened. But after it has been open for so long, it starts to eat up my memory. Earlier i clocked it at 998,373kb when i realized my computer was slowing down. If i re-open Firefox, it starts off