Would this query be faster in Oracle 10?
I'm running 2 queries on Oracle 8i:
Query 1:
select count(Member_ID) from
select Member_ID, c2, c3, ... c100 from T1
union
select Member_ID, c2, c3, ... c100 from T2
union
union
select Member_ID, c2, c3, ... c100 from T10
Query2:
select count(Member_ID) from
select Member_ID from T1
union
select Member_ID from T2
union
union
select Member_ID from T10
The columns c2 to c100 in Query 1 involve a lot of cast statements. Query 1 takes about 81 seconds and Query 2 takes only about 1/4 second – which is a big difference. These 2 queries are equivalent in terms of what the would return. The reason I am doing Query 1 is because I want the inner query to be a view.
My question is does anyone know if Oracle 10 would be smart enough to 'forget' about columns c2 to c100 in Query 1 as they are not needed in Query 1? Could the execution times of the 2 queries be similar in Oracle 10?
Please don't ask me to see the whole queries as they too big and beside the point.
Denis,
The answer to your question is that Oracle is smart
enough to know it simply cannot 'forget' columns c2
until c100. The fact that in your case both the
queries return the same result, does not mean the two
are semantically equivalent.
In query 1 you use a union operator, meaning it has
to do a SORT UNIQUE step. In other words: only when
the rows (member_ID,c2,c3,...,c100) are completely
identical they will be merged. In query 2 the rows
only get merged when member_ID's are identical.
Regards,
Rob.Thanks for your help! I didn't think about that! In this case the Member_ID is unique (but I didn't say that from the outset). I'm going to try this thing over using Union All instead of Union. If that doesn't help me - I may write back with an update on the post...
Similar Messages
-
How to make this query go faster
Hi ,
I have the following query :
select a.* from
tbl1 a , tbl2 b
where a.id = b.id
substr(b.id , 3, 2) <> 'XX'
and b.date1 is not null
and b.date1 >= sysdate - 90 ;
tbl1 - 21 million rows
tbl2 - 2 millions
i specify this hints /*+ INDEX(idxa_1 , idxa_2) INDEX(ixdb_1)
where idxa_1 --> b.lotid
idxa_2 --> b.date1
idxb_1 --> a.lotid
IF i DO NOT include b.date1 is not null and b.date1 >= sysdate - 90 ,
from explain plan i could see it using a FAST FULL SCAN which really returns very fast
HOWEVER if i include b.date1 is not null and b.date1 >= sysdate - 90
, from explain plain it uses row index and then there's a range scan and its slow
how can i improve the performance of this query ?
pls advise
tks & rdgsDon't create the temporary table.
Create a function based index on table two
substr(id , 3, 2)Make sure you have gathered statistics on the tables.
Remove the hint.
select a.* from
tbl1 a , tbl2 b
where a.id = b.id
and substr(b.id , 3, 2) <> 'XX'
and b.date1 >= sysdate - 90;If you still have performance problems, post the formatted explain plan from sqlplus.
Read the Performance Tuning Guide.
Unfortunately this is not urs advice. -
Why would this query return three rows?
select pc.tour_id,
pcp.project_id,
pc.contr_num,
pc.current_contr_status,
pc.current_contr_substat
from p_contract_lead pcl
left join p_contract pc on pc.contr_num = '2385108'--pcl.contr_num
left join p_contract_purchase pcp on pcp.contr_num ='2385108'-- pc.contr_num
where pcl.lead_id = '179772978'
in this query it returns me 3 rows,
in p_contract there is only 1 row with contr_num = '2385108'
and p_contract_purchase also has 1 row with contr_num = '2385108'
in p_contract_lead the lead_id = '179772978' has 3 records but they dont have contr_num=2385108
im just wondering why is giving me these results?
shouldnt it give me zero results since the pcl.lead_id = '179772978' does not equal contr_num=2385108?
i have version 12.0.0.6, maybe is the way i dont understand the left join works, or could be something else?
sorry for not creating a example , because i really dont know how.
thanks for your helpHi,
FROM l
LEFT OUTER JOIN r ON ...
means include all rows from l whether or not they have a match in r.
If you have 3 rows in l, then there will always be at least 3 rows in the result set, regardless of what's in r (if anything).
natpidgeon wrote:
in p_contract there is only 1 row with contr_num = '2385108'
and p_contract_purchase also has 1 row with contr_num = '2385108'
in p_contract_lead the lead_id = '179772978' has 3 records but they dont have contr_num=2385108
im just wondering why is giving me these results?
shouldnt it give me zero results since the pcl.lead_id = '179772978' does not equal contr_num=2385108? ...
What you just described is basically how an inner join works.
In this case, it doesn't matter in the least whether pcl.lead_id equals anything in pc or not. The join condition between pcl and pc is
pc.contr_num = '2385108'
That is, a row from pcl will match a row in pc if (and only if) pc.contr_num='2385108'. The join condition makes no mention of pcl.lead_id (or any other column in pcl, for that matter), so what's in pcl.lead_id (or any other column of pcl) doesn't play any role in deciding if rows match.
sorry for not creating a example , because i really dont know how.
Post CREATE TABLE statements for all 3 tables. You only need to include the columns that are used in this query.
Post 1 INSERT statement for p_contract, with contr_num = '2385108'. It wouldn't hurt to post an additional row that you know shouldn't appear in the results.
Post 1 INSERT statement for p_contract_purchase, also with contr_num = '2385108'. Again, it wouldn't hurt to post a 2nd row that does not meet the join condition.
Post 3 INSERT statements p_contract_lead with lead_id = '179772978' , but NOT contr_num='2385108'. Again, having another row with a different lead_id would make a better example. -
What can I do to make this query run faster
Hi All,
The below query is taking a long time. Is there any thing that I can do to shorten its time.
SELECT C.FOLIO_NO, C.CO_TRANS_NO TRANS_NO, to_char(C.CREATED_DATE, 'dd/mm/yyyy') DOC_DATE, DECODE(PP.NAME, NULL, D.EMP_NAME, PP.NAME) LODGED_BY, decode(sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID), Null, '-', sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID)) DATE_CHANGE, P.RECEIPT_NO, decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id) TRANS_ID,(case when decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR20' then 1 when decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR03' then 2 end) TRANS_TYPE FROM CO_TRANS_MASTER C, PAYMENT_DETAIL P, PEOPLE_PROFILE PP, SC_AGENT_EMP D, M_CAA_TRANS E where '1' <> TRIM(UPPER('S0750070Z')) and (C.CO_TRANS_ID in TRIM(UPPER('AR20')) OR C.CO_TRANS_ID in TRIM(UPPER('AR03'))OR c.co_trans_id IN TRIM (UPPER ('A020')))and C.CO_TRANS_NO = P.TRANS_NO and (C.VOID_IND = 'N' or C.VOID_IND is Null) and C.CREATED_BY = PP.PP_ID(+) and C.PROF_NO = D.PROF_NO(+) and C.CREATED_BY = D.EMP_ID (+) and TRIM(UPPER(C.CO_NO)) = TRIM(UPPER('200101586W')) and c.co_trans_id = e.trans_id (+) order by FOLIO_NO;
SQL>
SQL> show parameter user_dump_dest
NAME TYPE VALUE
user_dump_dest string /u01/app/oracle/diag/rdbms/ebi
zfile/EBIZFILE1/trace
SQL> show parameter optimizer
NAME TYPE VALUE
optimizer_capture_sql_plan_baselines boolean FALSE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 11.2.0.2
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
optimizer_use_invisible_indexes boolean FALSE
optimizer_use_pending_statistics boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
SQL> show parameter db_file_multi
NAME TYPE VALUE
db_file_multiblock_read_count integer 128
SQL> show parameter db_block_size
NAME TYPE VALUE
db_block_size integer 8192
SQL> show parameter cursor_sharing
NAME TYPE VALUE
cursor_sharing string EXACT
SQL>
SQL> column sname format a20
SQL> column pname format a20
SQL> column pval2 format a20
SQL>
SQL> select
2 sname, pname, pval1, pval2
3 from
4 sys.aux_stats$;
SNAME PNAME PVAL1 PVAL2
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 09-11-2010 14:25
SYSSTATS_INFO DSTOP 09-11-2010 14:25
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 739.734748
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.
Elapsed: 00:00:00.06
SQL>
SQL> explain plan for
2 SELECT C.FOLIO_NO, C.CO_TRANS_NO TRANS_NO, to_char(C.CREATED_DATE, 'dd/mm/yyyy') DOC_DATE, DECODE(PP.NAME, NULL, D.EMP_NAME, PP.NAME) LODGED_BY, decode(sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID), Null, '-', sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID)) DATE_CHANGE, P.RECEIPT_NO, decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id) TRANS_ID,(case when decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR20' then 1 when decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR03' then 2 end) TRANS_TYPE FROM CO_TRANS_MASTER C, PAYMENT_DETAIL P, PEOPLE_PROFILE PP, SC_AGENT_EMP D, M_CAA_TRANS E where '1' <> TRIM(UPPER('S0750070Z')) and (C.CO_TRANS_ID in TRIM(UPPER('AR20')) OR C.CO_TRANS_ID in TRIM(UPPER('AR03'))OR c.co_trans_id IN TRIM (UPPER ('A020')))and C.CO_TRANS_NO = P.TRANS_NO and (C.VOID_IND = 'N' or C.VOID_IND is Null) and C.CREATED_BY = PP.PP_ID(+) and C.PROF_NO = D.PROF_NO(+) and C.CREATED_BY = D.EMP_ID (+) and TRIM(UPPER(C.CO_NO)) = TRIM(UPPER('200101586W')) and c.co_trans_id = e.trans_id (+) order by FOLIO_NO;
Explained.
Elapsed: 00:00:00.09
SQL>
SQL> set pagesize 1000;
SQL> set linesize 170;
SQL> @/u01/app/oracle/product/11.2.0/rdbms/admin/utlxpls.sql
SQL> Rem
SQL> Rem $Header: utlxpls.sql 26-feb-2002.19:49:37 bdagevil Exp $
SQL> Rem
SQL> Rem utlxpls.sql
SQL> Rem
SQL> Rem Copyright (c) 1998, 2002, Oracle Corporation. All rights reserved.
SQL> Rem
SQL> Rem NAME
SQL> Rem utlxpls.sql - UTiLity eXPLain Serial plans
SQL> Rem
SQL> Rem DESCRIPTION
SQL> Rem script utility to display the explain plan of the last explain plan
SQL> Rem command. Do not display information related to Parallel Query
SQL> Rem
SQL> Rem NOTES
SQL> Rem Assume that the PLAN_TABLE table has been created. The script
SQL> Rem utlxplan.sql should be used to create that table
SQL> Rem
SQL> Rem With SQL*plus, it is recomended to set linesize and pagesize before
SQL> Rem running this script. For example:
SQL> Rem set linesize 100
SQL> Rem set pagesize 0
SQL> Rem
SQL> Rem MODIFIED (MM/DD/YY)
SQL> Rem bdagevil 02/26/02 - cast arguments
SQL> Rem bdagevil 01/23/02 - rewrite with new dbms_xplan package
SQL> Rem bdagevil 04/05/01 - include CPU cost
SQL> Rem bdagevil 02/27/01 - increase Name column
SQL> Rem jihuang 06/14/00 - change order by to order siblings by.
SQL> Rem jihuang 05/10/00 - include plan info for recursive SQL in LE row source
SQL> Rem bdagevil 01/05/00 - add order-by to make it deterministic
SQL> Rem kquinn 06/28/99 - 901272: Add missing semicolon
SQL> Rem bdagevil 05/07/98 - Explain plan script for serial plans
SQL> Rem bdagevil 05/07/98 - Created
SQL> Rem
SQL>
SQL> set markup html preformat on
SQL>
SQL> Rem
SQL> Rem Use the display table function from the dbms_xplan package to display the last
SQL> Rem explain plan. Force serial option for backward compatibility
SQL> Rem
SQL> select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));
PLAN_TABLE_OUTPUT
Plan hash value: 2520189693
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 592 | 85248 | 16573 (1)| 00:03:19 |
| 1 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | 20 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | 1 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | 20 | 2 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | 1 (0)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | 20 | 2 (0)| 00:00:01 |
|* 6 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | 1 (0)| 00:00:01 |
| 7 | SORT ORDER BY | | 592 | 85248 | 16573 (1)| 00:03:19 |
| 8 | NESTED LOOPS | | | | | |
| 9 | NESTED LOOPS | | 592 | 85248 | 16572 (1)| 00:03:19 |
| 10 | NESTED LOOPS OUTER | | 477 | 54855 | 15329 (1)| 00:03:04 |
| 11 | NESTED LOOPS OUTER | | 477 | 41499 | 14374 (1)| 00:02:53 |
| 12 | INLIST ITERATOR | | | | | |
|* 13 | TABLE ACCESS BY INDEX ROWID| CO_TRANS_MASTER | 477 | 22896 | 14367 (1)| 00:02:53 |
|* 14 | INDEX RANGE SCAN | IDX_CO_TRANS_ID | 67751 | | 150 (1)| 00:00:02 |
| 15 | TABLE ACCESS BY INDEX ROWID | SC_AGENT_EMP | 1 | 39 | 1 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | PK_SC_AGENT_EMP | 1 | | 0 (0)| 00:00:01 |
| 17 | TABLE ACCESS BY INDEX ROWID | PEOPLE_PROFILE | 1 | 28 | 2 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | SYS_C0063100 | 1 | | 1 (0)| 00:00:01 |
|* 19 | INDEX RANGE SCAN | IDX_PAY_DETAIL_TRANS_NO | 1 | | 2 (0)| 00:00:01 |
| 20 | TABLE ACCESS BY INDEX ROWID | PAYMENT_DETAIL | 1 | 29 | 3 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("F"."CO_TRANS_NO"=:B1)
4 - access("F"."CO_TRANS_NO"=:B1)
6 - access("F"."CO_TRANS_NO"=:B1)
13 - filter(TRIM(UPPER("SYS_ALIAS_3"."CO_NO"))='200101586W' AND ("SYS_ALIAS_3"."VOID_IND" IS NULL
OR "SYS_ALIAS_3"."VOID_IND"='N'))
14 - access("SYS_ALIAS_3"."CO_TRANS_ID"='A020' OR "SYS_ALIAS_3"."CO_TRANS_ID"='AR03' OR
"SYS_ALIAS_3"."CO_TRANS_ID"='AR20')
16 - access("SYS_ALIAS_3"."PROF_NO"="D"."PROF_NO"(+) AND
"SYS_ALIAS_3"."CREATED_BY"="D"."EMP_ID"(+))
18 - access("SYS_ALIAS_3"."CREATED_BY"="PP"."PP_ID"(+))
19 - access("SYS_ALIAS_3"."CO_TRANS_NO"="P"."TRANS_NO")
42 rows selected.
Elapsed: 00:00:00.53
SQL>
SQL>
SQL>
SQL> rollback;
Rollback complete.
Elapsed: 00:00:00.01
SQL>
SQL> rem Set the ARRAYSIZE according to your application
SQL> set autotrace traceonly arraysize 100
SQL>
SQL> alter session set tracefile_identifier = 'mytrace1';
Session altered.
Elapsed: 00:00:00.00
SQL>
SQL> rem if you're using bind variables
SQL> rem define them here
SQL>
SQL> rem variable b_var1 number
SQL> rem variable b_var2 varchar2(20)
SQL>
SQL> rem and initialize them
SQL>
SQL> rem exec :b_var1 := 1
SQL> rem exec :b_var2 := 'DIAG'
SQL> set pagesize 1000;
SQL> set linesize 170;
SQL> alter session set events '10046 trace name context forever, level 8';
Session altered.
Elapsed: 00:00:00.01
SQL> SELECT C.FOLIO_NO, C.CO_TRANS_NO TRANS_NO, to_char(C.CREATED_DATE, 'dd/mm/yyyy') DOC_DATE, DECODE(PP.NAME, NULL, D.EMP_NAME, PP.NAME) LODGED_BY, decode(sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID), Null, '-', sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID)) DATE_CHANGE, P.RECEIPT_NO, decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id) TRANS_ID,(case when decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR20' then 1 when decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR03' then 2 end) TRANS_TYPE FROM CO_TRANS_MASTER C, PAYMENT_DETAIL P, PEOPLE_PROFILE PP, SC_AGENT_EMP D, M_CAA_TRANS E where '1' <> TRIM(UPPER('S0750070Z')) and (C.CO_TRANS_ID in TRIM(UPPER('AR20')) OR C.CO_TRANS_ID in TRIM(UPPER('AR03'))OR c.co_trans_id IN TRIM (UPPER ('A020')))and C.CO_TRANS_NO = P.TRANS_NO and (C.VOID_IND = 'N' or C.VOID_IND is Null) and C.CREATED_BY = PP.PP_ID(+) and C.PROF_NO = D.PROF_NO(+) and C.CREATED_BY = D.EMP_ID (+) and TRIM(UPPER(C.CO_NO)) = TRIM(UPPER('200101586W')) and c.co_trans_id = e.trans_id (+) order by FOLIO_NO;
10 rows selected.
Elapsed: 00:03:42.27
Execution Plan
Plan hash value: 2520189693
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 592 | 85248 | 16573 (1)| 00:03:19 |
| 1 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | 20 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | 1 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | 20 | 2 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | 1 (0)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | 20 | 2 (0)| 00:00:01 |
|* 6 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | 1 (0)| 00:00:01 |
| 7 | SORT ORDER BY | | 592 | 85248 | 16573 (1)| 00:03:19 |
| 8 | NESTED LOOPS | | | | | |
| 9 | NESTED LOOPS | | 592 | 85248 | 16572 (1)| 00:03:19 |
| 10 | NESTED LOOPS OUTER | | 477 | 54855 | 15329 (1)| 00:03:04 |
| 11 | NESTED LOOPS OUTER | | 477 | 41499 | 14374 (1)| 00:02:53 |
| 12 | INLIST ITERATOR | | | | | |
|* 13 | TABLE ACCESS BY INDEX ROWID| CO_TRANS_MASTER | 477 | 22896 | 14367 (1)| 00:02:53 |
|* 14 | INDEX RANGE SCAN | IDX_CO_TRANS_ID | 67751 | | 150 (1)| 00:00:02 |
| 15 | TABLE ACCESS BY INDEX ROWID | SC_AGENT_EMP | 1 | 39 | 1 (0)| 00:00:01 |
|* 16 | INDEX UNIQUE SCAN | PK_SC_AGENT_EMP | 1 | | 0 (0)| 00:00:01 |
| 17 | TABLE ACCESS BY INDEX ROWID | PEOPLE_PROFILE | 1 | 28 | 2 (0)| 00:00:01 |
|* 18 | INDEX UNIQUE SCAN | SYS_C0063100 | 1 | | 1 (0)| 00:00:01 |
|* 19 | INDEX RANGE SCAN | IDX_PAY_DETAIL_TRANS_NO | 1 | | 2 (0)| 00:00:01 |
| 20 | TABLE ACCESS BY INDEX ROWID | PAYMENT_DETAIL | 1 | 29 | 3 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("F"."CO_TRANS_NO"=:B1)
4 - access("F"."CO_TRANS_NO"=:B1)
6 - access("F"."CO_TRANS_NO"=:B1)
13 - filter(TRIM(UPPER("SYS_ALIAS_3"."CO_NO"))='200101586W' AND ("SYS_ALIAS_3"."VOID_IND" IS NULL
OR "SYS_ALIAS_3"."VOID_IND"='N'))
14 - access("SYS_ALIAS_3"."CO_TRANS_ID"='A020' OR "SYS_ALIAS_3"."CO_TRANS_ID"='AR03' OR
"SYS_ALIAS_3"."CO_TRANS_ID"='AR20')
16 - access("SYS_ALIAS_3"."PROF_NO"="D"."PROF_NO"(+) AND
"SYS_ALIAS_3"."CREATED_BY"="D"."EMP_ID"(+))
18 - access("SYS_ALIAS_3"."CREATED_BY"="PP"."PP_ID"(+))
19 - access("SYS_ALIAS_3"."CO_TRANS_NO"="P"."TRANS_NO")
Statistics
51 recursive calls
0 db block gets
651812 consistent gets
92202 physical reads
0 redo size
1594 bytes sent via SQL*Net to client
524 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
10 rows processed
SQL>
SQL> disconnect
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> Thanks in advance!Hi Raj,
I have given the output below as you requested....
QL> select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
PLAN_TABLE_OUTPUT
SQL_ID 0taz7ckjm41yv, child number 1
SELECT C.FOLIO_NO, C.CO_TRANS_NO TRANS_NO, to_char(C.CREATED_DATE,
'dd/mm/yyyy') DOC_DATE, DECODE(PP.NAME, NULL, D.EMP_NAME, PP.NAME)
LODGED_BY, decode(sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID),
Null, '-', sf_fetch_datechange(c.co_trans_no, C.CO_TRANS_ID))
DATE_CHANGE, P.RECEIPT_NO, decode(c.co_trans_id,'A020',(select
nvl(base_trans_id,co_trans_id) from co_form5a_trans f where
f.co_trans_no=c.co_trans_no),c.co_trans_id) TRANS_ID,(case when
decode(c.co_trans_id,'A020',(select nvl(base_trans_id,co_trans_id) from
co_form5a_trans f where f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR2
0' then 1 when decode(c.co_trans_id,'A020',(select
nvl(base_trans_id,co_trans_id) from co_form5a_trans f where
f.co_trans_no=c.co_trans_no),c.co_trans_id)='AR03' then 2 end)
TRANS_TYPE FROM CO_TRANS_MASTER C, PAYMENT_DETAIL P, PEOPLE_PROFILE PP,
SC_AGENT_EMP D, M_CAA_TRANS E where '1' <> TRIM(UPPER('S0750070Z')) and
(C.CO_TRANS_ID in TRIM(UPPER('AR20')) OR C.CO_TRANS_ID in
TRIM(UPPER('AR03'))OR c.co
Plan hash value: 4175354585
| Id | Operation | Name | E-Rows | OMem | 1Mem | Used-Mem |
| 0 | SELECT STATEMENT | | | | | |
| 1 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | | | |
|* 2 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | | |
| 3 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | | | |
|* 4 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | | |
| 5 | TABLE ACCESS BY INDEX ROWID | CO_FORM5A_TRANS | 1 | | | |
|* 6 | INDEX UNIQUE SCAN | SYS_C0059692 | 1 | | | |
| 7 | SORT ORDER BY | | 12 | 2048 | 2048 | 2048 (0)|
| 8 | NESTED LOOPS | | | | | |
| 9 | NESTED LOOPS | | 12 | | | |
| 10 | NESTED LOOPS OUTER | | 10 | | | |
| 11 | NESTED LOOPS OUTER | | 10 | | | |
|* 12 | TABLE ACCESS FULL | CO_TRANS_MASTER | 10 | | | |
| 13 | TABLE ACCESS BY INDEX ROWID| SC_AGENT_EMP | 1 | | | |
|* 14 | INDEX UNIQUE SCAN | PK_SC_AGENT_EMP | 1 | | | |
| 15 | TABLE ACCESS BY INDEX ROWID | PEOPLE_PROFILE | 1 | | | |
|* 16 | INDEX UNIQUE SCAN | SYS_C0063100 | 1 | | | |
|* 17 | INDEX RANGE SCAN | IDX_PAY_DETAIL_TRANS_NO | 1 | | | |
| 18 | TABLE ACCESS BY INDEX ROWID | PAYMENT_DETAIL | 1 | | | |
Predicate Information (identified by operation id):
2 - access("F"."CO_TRANS_NO"=:B1)
4 - access("F"."CO_TRANS_NO"=:B1)
6 - access("F"."CO_TRANS_NO"=:B1)
12 - filter((INTERNAL_FUNCTION("SYS_ALIAS_3"."CO_TRANS_ID") AND
TRIM(UPPER("SYS_ALIAS_3"."CO_NO"))='200101586W' AND ("SYS_ALIAS_3"."VOID_IND" IS NULL OR
"SYS_ALIAS_3"."VOID_IND"='N')))
14 - access("SYS_ALIAS_3"."PROF_NO"="D"."PROF_NO" AND "SYS_ALIAS_3"."CREATED_BY"="D"."EMP_ID")
16 - access("SYS_ALIAS_3"."CREATED_BY"="PP"."PP_ID")
17 - access("SYS_ALIAS_3"."CO_TRANS_NO"="P"."TRANS_NO")
Note
- cardinality feedback used for this statement
- Warning: basic plan statistics not available. These are only collected when:
* hint 'gather_plan_statistics' is used for the statement or
* parameter 'statistics_level' is set to 'ALL', at session or system level
65 rows selected. -
Trying to get a list of fragmented indexes based on a database name. However,
SELECT COUNT(*) AS TableFragOver80PctCount
FROM sys.dm_db_index_physical_stats (null, null, null, null, null )as ts
INNER JOIN sys.tables t on t.[object_id] = ts.[object_id]
INNER JOIN sys.indexes i on i.[object_id] = ts.[object_id]
INNER JOIN sys.databases db ON ts.database_id = db.database_id
WHERE db.name = 'MY DB NAME'
AND ts.avg_fragmentation_in_percent > 80.00
The error I get back
Msg 942, Level 14, State 4, Line 1
Database 'VERY DIFFERENT DB' cannot be opened because it is offline.
I know there is a database on this server that is offline, actually 2 or 3, but not the one Im trying to get information about. What could cause the above query to have trouble getting index info that is caused by an entirely different database being
offline?FROM sys.dm_db_index_physical_stats (null, null, null, null, null )as ts
See MSDN sys.dm_db_index_physical_stats
; the first parameter is the database id; if you pass NULL as here, then all databases will be scanned, also your offline one.
Olaf Helper
[ Blog] [ Xing] [ MVP] -
How Can I make this query run faster
SQL> EXPLAIN PLAN FOR SELECT a.txid, a.methodid, a.serviceid, a.nodename, a.env, a.ts, a.te, a.resultcode, a.resultmessage FROM g2log.txmaster a,
2 g2log.txlookup b WHERE b.key = 'sbcgnfttxuniquedslamportid' AND b.value = 'MTC3LS733001-1-1-2-13' AND a.txid = b.txid ORDER BY ts desc;
Explained.
Elapsed: 00:00:00.01
SQL> @$ORACLE_HOME/rdbms/admin/utlxpls.sql
PLAN_TABLE_OUTPUT
Plan hash value: 3790334907
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
| 0 | SELECT STATEMENT | | 578 | 108K| 1267 (1)| 00:00:16 | | |
| 1 | PX COORDINATOR | | | | | | | |
| 2 | PX SEND QC (ORDER) | :TQ10001 | 578 | 108K| 1267 (1)| 00:00:16 | | |
| 3 | SORT ORDER BY | | 578 | 108K| 1267 (1)| 00:00:16 | | |
| 4 | PX RECEIVE | | | | | | | |
| 5 | PX SEND RANGE | :TQ10000 | | | | | | |
| 6 | NESTED LOOPS | | | | | | | |
| 7 | NESTED LOOPS | | 578 | 108K| 1266 (1)| 00:00:16 | | |
| 8 | PX PARTITION RANGE ALL | | 578 | 44506 | 109 (0)| 00:00:02 | 1 | 27 |
| 9 | TABLE ACCESS BY LOCAL INDEX ROWID| TXLOOKUP | 578 | 44506 | 109 (0)| 00:00:02 | 1 | 27 |
|* 10 | INDEX RANGE SCAN | TX_KEY_VAL | 578 | | 58 (0)| 00:00:01 | 1 | 27 |
|* 11 | INDEX UNIQUE SCAN | TXMASTER_TXID_PK | 1 | | 1 (0)| 00:00:01 | | |
| 12 | TABLE ACCESS BY GLOBAL INDEX ROWID | TXMASTER | 1 | 116 | 2 (0)| 00:00:01 | ROWID | ROWID |
Predicate Information (identified by operation id):
10 - access("B"."KEY"='sbcgnfttxuniquedslamportid' AND "B"."VALUE"='MTC3LS733001-1-1-2-13')
11 - access("A"."TXID"="B"."TXID")
25 rows selected.
I have gathered stats on the two tables as well
SQL> select count(*) from g2log.txmaster;
COUNT(*)
88812
SQL> select count(*) from g2log.txlookup;
COUNT(*)
228883I bellieve that it is disabled as well:
SQL> show parameter parallel
NAME TYPE VALUE
fast_start_parallel_rollback string LOW
parallel_adaptive_multi_user boolean TRUE
parallel_automatic_tuning boolean FALSE
parallel_degree_limit string CPU
parallel_degree_policy string MANUAL
parallel_execution_message_size integer 16384
parallel_force_local boolean FALSE
parallel_instance_group string
parallel_io_cap_enabled boolean FALSE
parallel_max_servers integer 985
parallel_min_percent integer 0
parallel_min_servers integer 0
parallel_min_time_threshold string AUTO
parallel_server boolean TRUE
parallel_server_instances integer 2
parallel_servers_target integer 1024
parallel_threads_per_cpu integer 2
recovery_parallelism integer 0 -
How to know query is fired from Oracle froms or Reports
Hi,
I am using oracle database 11g Release 2.
I use oracle enterprise manager to find which query requires more time to execute but how can i find which user is firing this query and this query is fired from oracle form or from oracle reports.
Database: 11g R2
O.S: Windows 7 professional
Forms & reports : 11.1.2
Need Help..But how can i frind the query is run by user is from oracle forms or from oracle reports.
How can i get the name of form or report from where user is running.did you read the document about v$session attached in the other post?
You have the answer there.
If you want the exactly query, this is not the place. We try to help, not do your job. -
Can you pls correct this query :: ( In Oracle Core HRMS )
Dear all,
i have created query get result :: ( In Oracle Core HRMS )
• EE Number
• Forename
• Surname
• Dept
• Start Date
• Leave Date
• Date of Birth
• Address
• Salary (New & Existing Employee)
• Car Allowance
• Effective date (changes/updates)
• Creation Date/Update date
• Email address
• Gender
• Job Description
• Grade
• From and to date for parametres
• Last Modified Date
SELECT
papf.EMPLOYEE_NUMBER emp_no
, papf.FIRST_NAME forname
, papf.LAST_NAME surname
, replace(replace(hou.attribute1,'10-',''), '14-', '') department
, pps.date_start strt_date
, pps.actual_termination_date leave_date
, papf.DATE_OF_BIRTH dob
, pdd.ADDRESS_LINE1||''||pdd.ADDRESS_LINE2||','||pdd.ADDRESS_LINE3 Address
, ppp.proposed_salary_n salary
, papf.EFFECTIVE_START_DATE estart_date
, papf.EFFECTIVE_END_DATE eend_date
, papf.CREATION_DATE crt_date
, papf.EMAIL_ADDRESS mail_addrs
, papf.SEX GENDER
, pj.NAME Job_Des
, substr(pg.name, 1, 1) GRADE
, papf.LAST_UPDATE_DATE Last_Modified_Date
FROM per_all_people_f papf
, per_all_assignments_f paaf
, per_addresses pdd
, per_pay_proposals ppp
, per_grades pg
, pay_payrolls_f pp
, per_jobs pj
, per_periods_of_service pps
, per_person_types ppt
, per_person_type_usages_f pptu
-- , pay_element_entries_f pee
, hr_organization_units hou
WHERE papf.person_id = paaf.person_id
AND papf.person_id = pdd.person_id
AND papf.person_id = pptu.person_id
and papf.person_id = pps.person_id
and pps.period_of_service_id = paaf.period_of_service_id
AND ppp.assignment_id = paaf.assignment_id
-- AND pee.assignment_id = paaf.assignment_id
AND paaf.grade_id = pg.grade_id
AND paaf.payroll_id = pp.payroll_id
AND pptu.person_type_id = ppt.person_type_id
AND paaf.organization_id = hou.organization_id
AND pj.job_id = paaf.job_id
AND ppp.pay_proposal_id = (SELECT MAX (pay_proposal_id)
FROM per_pay_proposals
WHERE assignment_id = paaf.assignment_id)
AND pp.payroll_id = 224
AND pdd.primary_flag = 'Y'
AND pee.element_type_id = 221 for car allowance
AND papf.employee_number <> 'NONE'
AND ppt.user_person_type in ('Employee', 'Ex-employee' ,'Intern')
AND ppt.system_person_type in ('EX_EMP', 'EMP')
AND TRUNC(SYSDATE) between papf.effective_start_date and papf.effective_end_date
AND TRUNC(SYSDATE) between paaf.effective_start_date and paaf.effective_end_date
AND TRUNC(SYSDATE) between pptu.effective_start_date and pptu.effective_end_date ;
can you pls correct this
still i need to add Car Allowance and Bank details in above query pls tell me where i can get dept details in oracle core HR
Thanks all
Edited by: 981527 on Jan 30, 2013 3:41 AM
Edited by: 981527 on Jan 31, 2013 1:22 AM
Edited by: 981527 on Jan 31, 2013 1:30 AM
Edited by: 981527 on Jan 31, 2013 9:03 PM
Edited by: 981527 on Feb 1, 2013 4:50 AMI am taking a guess that 'Dept' is where the employee works, so that will be the column 'NAME' in the table HR_ALL_ORGANIZATION_UNITS; you will need to join with this table on the assignment's organization_id value
Edited to add: Whilst you're testing this, you might want to consider removing the table PAY_ELEMENT_ENTRIES_F from the table list, otherwise you can look forward to potentially large cartesian product of returned rows!
Clive
Edited by: clive_t on 31-Jan-2013 09:59 -
Is there a faster form of this query?
I received a table of corrections that have to be 'propagated' to a master table, i.e. the corrections table is composed of a few columns and every value of every column of every row must be used to update the corresponding row-column in the master table. Both tables have id columns that can be used to match rows from the two. The query I was given to do this was:
update master a
set a.calculated_error = ( select calculated_error from corrections b where b.id = a.id ),
... additional columns to update follow with the same syntax.
The columns being updated are not indexed in either table.
The query takes a very long time to run. I suppose I can see why, lots of queries on columns that are not indexed so each query involves a table scan.
Is there a faster form of this query?
Thanks,
-=bIn additon to Herald's suggestion, assuming he is correct in his assumption that corrections is small in relation to master, I might also consider updating all of the columns in one shot. something along the lines of:
update master a
set (a.calculated_error, a.first_add, a.second_add) = (select calculated_error, first_add, second_add
from corrections b where b.id = a.id )
WHERE a.id in (SELECT id from corrections)Alternatively, if corrections.id is unique, I might also try creating a unique index on it and using an updateable join view like:
UPDATE (SELECT a.calculated_error, a.first_add, b.second_add,
b.calculated_error new_calc, b.first_add new_first,
b.second_add new_second
FROM master a, corrections b
WHERE a.id = b.id)
SET calculated_error = new_calc,
first_add = new_first,
second_add = new_secondIf you need to deal with NULLs in corrections, then use something like:
SET first_add = NVL(new_first, first_add)John -
Convert this query from Ms Access to Oracle?
How in the hole world can do this query in oracle?
TRANSFORM Sum(NET_SALES) AS SALES
SELECT YEAR_MONTH
FROM TBLCUSTOMER
WHERE (CUSTOMER=2083 Or CUSTOMER=1035 Or CUSTOMER=2097)
AND YEAR_MONTH Between 200709 And 200801
GROUP BY YEAR_MONTH
ORDER BY YEAR_MONTH
PIVOT CUSTOMER;Like this perhaps:
SQL> ed
Wrote file afiedt.buf
1 WITH t AS (SELECT TO_DATE('01/01/2008','dd.mm.yyyy') AS dt, 1 AS emplid, 100 as sales FROM dual UNION ALL
2 SELECT TO_DATE('01/01/2008','dd.mm.yyyy'), 1, 200 FROM dual UNION ALL
3 SELECT TO_DATE('01/02/2008','dd.mm.yyyy'), 2, 300 FROM dual UNION ALL
4 SELECT TO_DATE('01/06/2008','dd.mm.yyyy'), 2, 400 FROM dual UNION ALL
5 SELECT TO_DATE('01/03/2007','dd.mm.yyyy'), 2, 500 FROM dual UNION ALL
6 SELECT TO_DATE('01/05/2007','dd.mm.yyyy'), 3, 600 FROM dual UNION ALL
7 SELECT TO_DATE('01/02/2008','dd.mm.yyyy'), 3, 700 FROM dual UNION ALL
8 SELECT TO_DATE('01/12/2008','dd.mm.yyyy'), 3, 800 FROM dual)
9 -- END OF TEST DATA
10 select year, month, emp_1_sales, emp_2_sales, emp_3_sales
11 from (
12 select extract(year from dt) as year, extract(month from dt) as month,
13 sum(decode(emplid, 1, sales, 0)) as emp_1_sales,
14 sum(decode(emplid, 2, sales, 0)) as emp_2_sales,
15 sum(decode(emplid, 3, sales, 0)) as emp_3_sales
16 from t
17 group by extract(year from dt), extract(month from dt)
18 )
19* order by emp_3_sales desc, emp_2_sales desc, emp_1_sales desc
SQL> /
YEAR MONTH EMP_1_SALES EMP_2_SALES EMP_3_SALES
2008 12 0 0 800
2008 2 0 300 700
2007 5 0 0 600
2007 3 0 500 0
2008 6 0 400 0
2008 1 300 0 0
6 rows selected.
SQL> ed
Wrote file afiedt.buf
1 WITH t AS (SELECT TO_DATE('01/01/2008','dd.mm.yyyy') AS dt, 1 AS emplid, 100 as sales FROM dual UNION ALL
2 SELECT TO_DATE('01/01/2008','dd.mm.yyyy'), 1, 200 FROM dual UNION ALL
3 SELECT TO_DATE('01/02/2008','dd.mm.yyyy'), 2, 300 FROM dual UNION ALL
4 SELECT TO_DATE('01/06/2008','dd.mm.yyyy'), 2, 400 FROM dual UNION ALL
5 SELECT TO_DATE('01/03/2007','dd.mm.yyyy'), 2, 500 FROM dual UNION ALL
6 SELECT TO_DATE('01/05/2007','dd.mm.yyyy'), 3, 600 FROM dual UNION ALL
7 SELECT TO_DATE('01/02/2008','dd.mm.yyyy'), 3, 700 FROM dual UNION ALL
8 SELECT TO_DATE('01/12/2008','dd.mm.yyyy'), 3, 800 FROM dual)
9 -- END OF TEST DATA
10 select extract(year from dt) as year, extract(month from dt) as month,
11 sum(decode(emplid, 1, sales, 0)) as emp_1_sales,
12 sum(decode(emplid, 2, sales, 0)) as emp_2_sales,
13 sum(decode(emplid, 3, sales, 0)) as emp_3_sales
14 from t
15 group by extract(year from dt), extract(month from dt)
16* order by 5 desc, 4 desc, 3 desc
SQL> /
YEAR MONTH EMP_1_SALES EMP_2_SALES EMP_3_SALES
2008 12 0 0 800
2008 2 0 300 700
2007 5 0 0 600
2007 3 0 500 0
2008 6 0 400 0
2008 1 300 0 0
6 rows selected.
SQL>If you meant something different, you'd better give an example of how you expect the output to be. -
I want to make performance fast of this query.
Hello friends,
I have used following queries in my 9 screen interactive report.Output/result is perfect but performance became damn slow.
I have used........(note : T2 is internal table)
SELECT VBELN INTO (T2-VBELN) FROM VBAK WHERE
AUART IN AUART AND VBELN IN VBELN.
SELECT NETWR POSNR INTO (T2-NETWR,T2-POSNR) FROM VBAP
WHERE VBELN = T2-VBELN .
SELECT AUFNR KDPOS PSMNG WEMNG INTO (T2-AUFNR,T2-KDPOS,T2-PSMNG, T2-WEMNG) FROM AFPO WHERE KDAUF = T2-VBELN .
SELECT DMBTR MATNR MENGE ELIKZ INTO (T2-DMBTR,T2-MATNR,T2-MENGE,T2-ELIKZ) FROM AUFM WHERE AUFNR = T2-AUFNR AND ELIKZ <> 'X'.
SELECT SINGLE MAKTX INTO (T2-MAKTX) FROM MAKT
WHERE MATNR = T2-MATNR.
APPEND T2.
ENDSELECT.
ENDSELECT.
ENDSELECT.
ENDSELECT.
Please sujjest me the any other option for this query.
Thanks in advance.
Regards,
n.i.m.z.Hi,
Please have a look at this code and see if it helps you. You will have to test this code properly as I could not do that due to the fact that I do not have any relevant data on my system. Please let me know if this helps you and do not forget to reward points if this was helpful.
TABLES: vbak.
SELECT-OPTIONS: vbeln FOR vbak-vbeln,
auart FOR vbak-auart.
DATA: BEGIN OF t2 OCCURS 0,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
netwr TYPE vbap-netwr,
aufnr TYPE afpo-aufnr,
kdpos TYPE afpo-kdpos,
psmng TYPE afpo-psmng,
wemng TYPE afpo-wemng,
dmbtr TYPE aufm-dmbtr,
matnr TYPE aufm-matnr,
menge TYPE aufm-menge,
elikz TYPE aufm-elikz,
maktx TYPE makt-maktx,
END OF t2,
BEGIN OF t_vbak OCCURS 0,
vbeln TYPE vbak-vbeln,
END OF t_vbak,
BEGIN OF t_vbap OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
netwr TYPE vbap-netwr,
END OF t_vbap,
BEGIN OF t_afpo OCCURS 0,
kdauf TYPE afpo-kdauf,
kdpos TYPE afpo-kdpos,
aufnr TYPE afpo-aufnr,
posnr TYPE afpo-posnr,
psmng TYPE afpo-psmng,
wemng TYPE afpo-wemng,
END OF t_afpo,
BEGIN OF t_aufm OCCURS 0,
aufnr TYPE aufm-aufnr,
mblnr TYPE aufm-mblnr,
mjahr TYPE aufm-mjahr,
zeile TYPE aufm-zeile,
dmbtr TYPE aufm-dmbtr,
matnr TYPE aufm-matnr,
menge TYPE aufm-menge,
elikz TYPE aufm-elikz,
END OF t_aufm,
BEGIN OF t_makt OCCURS 0,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF t_makt,
t_afpo_tmp LIKE TABLE OF t_afpo,
t_aufm_tmp LIKE TABLE OF t_aufm.
REFRESH t2.
SELECT vbeln
FROM vbak
INTO TABLE t_vbak
WHERE vbeln IN vbeln
AND auart IN auart.
IF sy-subrc EQ 0.
SORT t_vbak BY vbeln.
SELECT vbeln
posnr
netwr
FROM vbap
INTO TABLE t_vbap
FOR ALL ENTRIES IN t_vbak
WHERE vbeln EQ t_vbak-vbeln.
IF sy-subrc EQ 0.
SORT t_vbap BY vbeln
posnr.
SELECT kdauf
kdpos
aufnr
posnr
psmng
wemng
FROM afpo
INTO TABLE t_afpo
FOR ALL ENTRIES IN t_vbap
WHERE kdauf EQ t_vbap-vbeln
AND kdpos EQ t_vbap-posnr.
IF sy-subrc EQ 0.
SORT t_afpo BY kdauf
kdpos.
t_afpo_tmp[] = t_afpo[].
SORT t_afpo_tmp BY aufnr.
DELETE ADJACENT DUPLICATES FROM t_afpo_tmp COMPARING aufnr.
SELECT aufnr
mblnr
mjahr
zeile
dmbtr
matnr
menge
elikz
FROM aufm
INTO TABLE t_aufm
FOR ALL ENTRIES IN t_afpo_tmp
WHERE aufnr EQ t_afpo_tmp-aufnr.
IF sy-subrc EQ 0.
DELETE t_aufm WHERE elikz EQ 'X'.
SORT t_aufm BY aufnr.
IF NOT t_aufm[] IS INITIAL.
t_aufm_tmp[] = t_aufm[].
SORT t_aufm_tmp[] BY matnr.
DELETE ADJACENT DUPLICATES FROM t_aufm_tmp COMPARING matnr.
SELECT matnr
maktx
FROM makt
INTO TABLE t_makt
FOR ALL ENTRIES IN t_aufm_tmp
WHERE matnr EQ t_aufm_tmp-matnr
AND spras EQ sy-langu.
IF sy-subrc EQ 0.
SORT t_makt BY matnr.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF t_makt[] IS INITIAL.
MESSAGE e208(00) WITH 'No records found'.
ELSE.
LOOP AT t_vbap.
READ TABLE t_afpo WITH KEY kdauf = t_vbap-vbeln
kdpos = t_vbap-posnr
BINARY SEARCH
TRANSPORTING
kdpos
aufnr
psmng
wemng.
IF sy-subrc EQ 0.
READ TABLE t_aufm WITH KEY aufnr = t_afpo-aufnr
BINARY SEARCH
TRANSPORTING
dmbtr
matnr
menge
elikz.
IF sy-subrc EQ 0.
READ TABLE t_makt WITH KEY matnr = t_aufm-matnr
BINARY SEARCH
TRANSPORTING
maktx.
IF sy-subrc EQ 0.
t2-vbeln = t_vbap-vbeln.
t2-posnr = t_vbap-posnr.
t2-netwr = t_vbap-netwr.
t2-aufnr = t_afpo-aufnr.
t2-kdpos = t_afpo-kdpos.
t2-psmng = t_afpo-psmng.
t2-wemng = t_afpo-wemng.
t2-dmbtr = t_aufm-dmbtr.
t2-matnr = t_aufm-matnr.
t2-menge = t_aufm-menge.
t2-elikz = t_aufm-elikz.
t2-maktx = t_makt-maktx.
APPEND t2.
CLEAR t2.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
Regards,
Mark -
How do I speed up this query by ignoring computers off the network faster?
Good afternoon,
I am running the below script to query the entire domain for local admins. Could anyone reccomend a way to speed this up by more quickly skipping computers that aren't on the network? Currently, every time it reaches a computer that is not on the network
it hangs for up to 20 seconds (computers on the network return the data in less than a second). If I could decrease the ping time-out time, I could speed up this query tenfold.
Script pasted below - Thank you!!!
$Searcher = New-Object DirectoryServices.DirectorySearcher([ADSI]"")
$Searcher.Filter = "(objectClass=computer)"
$Computers = ($Searcher.Findall())
md C:\Reports\IBX_Local_Admins_ALL
Foreach ($Computer in $Computers)
$Path=$Computer.Path
$Name=([ADSI]"$Path").Name
write-host $Name
$members =[ADSI]"WinNT://$Name/Administrators"
$members = @($members.psbase.Invoke("Members"))
$members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty',
$null, $_, $null) | out-file -append C:\Reports\IBX_Local_Admins_ALL\$name.txtThis version will not fail no matter what is in the group.
function Get-LocalAdmins{
[CmdLetBinding()]
Param(
[Parameter(
Mandatory=$true,
ValueFromPipeline=$true,
Position=0
)]$computer
Process{
Write-Verbose "Polling system: $computer"
if(Test-Connection $Computer -quiet -count 1){
$group=[ADSI]"WinNT://$computer/Administrators"
$group.Invoke("Members") |
ForEach-Object{
New-Object PsObject -Property @{
Computer=$Computer
aDSPath=$_.GetType().InvokeMember('aDSPath', 'GetProperty',$null, $_, $null)
#UserID=$_.GetType().InvokeMember('Name', 'GetProperty',$null, $_, $null)
}else{
Write-Warning "System not found: $computer"
$computers=([adsisearcher]'(objectClass=computer)').FindAll() |%{$_.Properties['name']}
$computers | Get-LocalAdmins -verbose
¯\_(ツ)_/¯
Hi JRV,
Thank you for your help so far! When I ran the above version, it seemed to be going fine but it stopped at a certain point saying the script was "successful", but it only queried 148 computers. I should note that it is also the same 148 computers each time
I run it. No errors, it just stops and says successful. Any ideas?
TY! -
Select distinct(a.esal) from employee1 a where &N = (select count(distinct(b.esal)) from employee1 b where a.esal<=b.esal);
this is the query to find Nth largest & Nth smallest value from the table employee1....but, i am unable to understand how this query works ....plz..anybody can explain this query step by step with example....plzHi,
Welcome to the forum!
The first step in understanding any code is to format it so you can easily see what is a sub-query, what the major clauses of each sub-query are, and things like that.
For example:
Select distinct (a.esal)
from employee1 a
where &N = ( select count (distinct (b.esal))
from employee1 b
where a.esal <= b.esal
);The only thing I have added to the code you posted was whitespace: newlines, tabs and spaces.
Now it's easy to see that you're doing a query with a scalar sub-query in the WHERE clause.
It usually makes sense to read complicated queries from the inside out, that is, start with the deepest nested sub-query.
In this example, that means:
select count (distinct (b.esal))
from employee1 b
where a.esal <= b.esalWhat does this query do? Unfortunately, it references something (b.esal) from the super-query, so you can't run it by itself, to see what it does. Let's replace that reference with some hard-coded value, just for now, and run it:
select count (distinct (b.esal))
from employee1 b
--where a.esal <= b.esal -- This is the original WHERE clause
where a.esal <= 1000 -- For testing only
;Experiment with this for a while, and compare it to the values in the employee1 table (or a small test table that resembles employee1). Try different numbers in place of 1000.
You'll see that the query is counting how many different salaries are lower than, or equal to, a given salary (1000 in the example above).
When you understand the sub-query, look at the original query again.
It is testing to see if exactly &N different esals are lower than or equal to the esal on each row, and displaying that esal if it is. (&N is a substitution variable. If you haven't already defined a value for it, SQL*Plus will ask you for a value when you run the query.)
In other words, it is finding the N-th lowest value of esal. -
Hi,
I'm using below query in procedure.It's taking more more time can some one help to tune this query or advice to rewrite the query.
Databse :10.1
SELECT 'Reading Comprehension' TEST_NAME,T.TEST_END_DATE TEST_SESSION_DATE,
C.POOL_VERSION_ID, I.CREATED_ON POOL_CREATED_DT,
C.ITEM_ID, C.ITEM_RESPONSE_ID, S.STUDENT_ID_PK, C.RESPONSE_KEY, C.IS_CORRECT RESPONSE_IS_CORRECT,
T.SCORE SCALE_SCORE, C.RESPONSE_DURATION, P.ITEM_KEY,
T.TEST_SESSION_DETAIL_ID, SYSDATE CREATED_ON
-- BULK COLLECT INTO TV_PSYCHO_DET
FROM
CAT_ITEM_PARAMETER P, CAT_ITEM_USER_RESPONSE C, TEST_SESSION_DETAIL T,
TEST_SESSION S, ITEM_POOL_VERSION I, TEST_DETAIL D
,INSTITUTION E
WHERE TRUNC(T.TEST_END_DATE) BETWEEN TO_DATE('01-11-09','dd-mm-yy') AND TO_DATE('30-11-09','dd-mm-yy')
AND D.TEST_NAME = 'Reading Comprehension'
AND T.TEST_SESSION_STATUS_ID = 3
AND I.POOL_AVAILABILITY='Y'
AND P.PRETEST=0 AND C.RESTART_FLAG=0
AND T.TEST_DETAIL_ID = D.TEST_DETAIL_ID
AND S.TEST_SESSION_ID = T.TEST_SESSION_ID
AND C.TEST_SESSION_DETAIL_ID = T.TEST_SESSION_DETAIL_ID
AND S.INSTITUTION_ID=E.INSTITUTION_ID
AND SUBSTR(E.INSTITUTION_ID_DISPLAY,8,3) <> '000'
AND I.ITEM_ID = C.ITEM_ID
AND P.ITEM_ID = I.ITEM_ID;expln plan
Plan hash value: 3712814491
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart|
Pstop |
| 0 | SELECT STATEMENT | | 50857 | 7151K| 93382 (1)| 00:18:41 | |
|
|* 1 | FILTER | | | | | | |
|
|* 2 | HASH JOIN | | 50857 | 7151K| 93382 (1)| 00:18:41 | |
|
| 3 | PARTITION HASH ALL | | 2312 | 23120 | 25 (0)| 00:00:01 | 1 |
5 |
|* 4 | TABLE ACCESS FULL | CAT_ITEM_PARAMETER | 2312 | 23120 | 25 (0)| 00:00:01 | 1 |
5 |
|* 5 | HASH JOIN | | 94938 | 12M| 93356 (1)| 00:18:41 | |
|
|* 6 | TABLE ACCESS FULL | ITEM_POOL_VERSION | 9036 | 132K| 30 (0)| 00:00:01 | |
|
|* 7 | TABLE ACCESS BY GLOBAL INDEX ROWID | CAT_ITEM_USER_RESPONSE | 9 | 279 | 18 (0)| 00:00:01 | ROWID |
ROWID |
| 8 | NESTED LOOPS | | 45349 | 5270K| 93325 (1)| 00:18:40 | |
|
|* 9 | HASH JOIN | | 4923 | 423K| 11377 (1)| 00:02:17 | |
|
|* 10 | INDEX FAST FULL SCAN | INSTI_ID_NAME_COUN_DISP_IDX | 8165 | 111K| 18 (0)| 00:00:01 | |
|
|* 11 | HASH JOIN | | 4923 | 355K| 11359 (1)| 00:02:17 | |
|
|* 12 | TABLE ACCESS BY GLOBAL INDEX ROWID| TEST_SESSION_DETAIL | 4107 | 148K| 6804 (1)| 00:01:22 | ROWID |
ROWID |
| 13 | NESTED LOOPS | | 4923 | 278K| 6806 (1)| 00:01:22 | |
|
|* 14 | INDEX RANGE SCAN | TEST_DETAIL_AK_1 | 1 | 21 | 2 (0)| 00:00:01 | |
|
|* 15 | INDEX RANGE SCAN | TEST_SESSION_DETAIL_FK2_I | 39737 | | 102 (0)| 00:00:02 | |
|
| 16 | PARTITION HASH ALL | | 1672K| 25M| 4546 (1)| 00:00:55 | 1 |
5 |
| 17 | TABLE ACCESS FULL | TEST_SESSION | 1672K| 25M| 4546 (1)| 00:00:55 | 1 |
5 |
|* 18 | INDEX RANGE SCAN | CAT_ITEM_USER_RESP_IDX1 | 18 | | 3 (0)| 00:00:01 | |
|
Predicate Information (identified by operation id):
1 - filter(TO_DATE('01-11-09','dd-mm-yy')<=TO_DATE('30-11-09','dd-mm-yy'))
2 - access("P"."ITEM_ID"="I"."ITEM_ID")
4 - filter("P"."PRETEST"=0)
5 - access("I"."ITEM_ID"="C"."ITEM_ID")
6 - filter("I"."POOL_AVAILABILITY"='Y')
7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0)
9 - access("S"."INSTITUTION_ID"="E"."INSTITUTION_ID")
10 - filter(SUBSTR("E"."INSTITUTION_ID_DISPLAY",8,3)<>'000')
11 - access("S"."TEST_SESSION_ID"="T"."TEST_SESSION_ID")
12 - filter(TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))>=TO_DATE('01-11-09','dd-mm-yy') AND "T"."TEST_SESSION_STATUS_ID"=3
AND TRUNC(INTERNAL_FUNCTION("T"."TEST_END_DATE"))<=TO_DATE('30-11-09','dd-mm-yy'))
14 - access("D"."TEST_NAME"='Reading Comprehension')
15 - access("T"."TEST_DETAIL_ID"="D"."TEST_DETAIL_ID")
18 - access("C"."TEST_SESSION_DETAIL_ID"="T"."TEST_SESSION_DETAIL_ID")
43 rows selected.Edited by: user575115 on Dec 18, 2009 12:31 AMWhen you see something like ...
7 - filter(TO_NUMBER("C"."RESTART_FLAG")=0) It means that Oracle had to do a conversion for you since you aren't using the proper data type in your query.
That would mean IF there is an index on that column, it won't be useable... -
Like % in a query running on an Oracle Apps table with 8 million records
I am running the below query. As per the explain plan it is using the index on organization_id and inventory_item_id.
select segment1 from mtl_system_items where organization_id = 100 and inventory_item_id like '123456%'
It takes about 15 min to run this query which is a long time as this query returns values to the frontend created in asp. The webpage would time out by the time this query completes running. do you have any suggestions on how to run this query faster?It is an oracle apps table. below is the structure -
Name Null? Type
INVENTORY_ITEM_ID NOT NULL NUMBER
ORGANIZATION_ID NOT NULL NUMBER
LAST_UPDATE_DATE NOT NULL DATE
LAST_UPDATED_BY NOT NULL NUMBER
CREATION_DATE NOT NULL DATE
CREATED_BY NOT NULL NUMBER
LAST_UPDATE_LOGIN NUMBER
SUMMARY_FLAG NOT NULL VARCHAR2(1)
ENABLED_FLAG NOT NULL VARCHAR2(1)
START_DATE_ACTIVE DATE
END_DATE_ACTIVE DATE
DESCRIPTION VARCHAR2(240)
BUYER_ID NUMBER(9)
ACCOUNTING_RULE_ID NUMBER
INVOICING_RULE_ID NUMBER
SEGMENT1 VARCHAR2(40)
SEGMENT2 VARCHAR2(40)
SEGMENT3 VARCHAR2(40)
SEGMENT4 VARCHAR2(40)
SEGMENT5 VARCHAR2(40)
SEGMENT6 VARCHAR2(40)
SEGMENT7 VARCHAR2(40)
SEGMENT8 VARCHAR2(40)
SEGMENT9 VARCHAR2(40)
SEGMENT10 VARCHAR2(40)
SEGMENT11 VARCHAR2(40)
SEGMENT12 VARCHAR2(40)
SEGMENT13 VARCHAR2(40)
SEGMENT14 VARCHAR2(40)
SEGMENT15 VARCHAR2(40)
SEGMENT16 VARCHAR2(40)
SEGMENT17 VARCHAR2(40)
SEGMENT18 VARCHAR2(40)
SEGMENT19 VARCHAR2(40)
SEGMENT20 VARCHAR2(40)
ATTRIBUTE_CATEGORY VARCHAR2(30)
ATTRIBUTE1 VARCHAR2(150)
ATTRIBUTE2 VARCHAR2(150)
ATTRIBUTE3 VARCHAR2(150)
ATTRIBUTE4 VARCHAR2(150)
ATTRIBUTE5 VARCHAR2(150)
ATTRIBUTE6 VARCHAR2(150)
ATTRIBUTE7 VARCHAR2(150)
ATTRIBUTE8 VARCHAR2(150)
ATTRIBUTE9 VARCHAR2(150)
ATTRIBUTE10 VARCHAR2(150)
ATTRIBUTE11 VARCHAR2(150)
ATTRIBUTE12 VARCHAR2(150)
ATTRIBUTE13 VARCHAR2(150)
ATTRIBUTE14 VARCHAR2(150)
ATTRIBUTE15 VARCHAR2(150)
PURCHASING_ITEM_FLAG NOT NULL VARCHAR2(1)
SHIPPABLE_ITEM_FLAG NOT NULL VARCHAR2(1)
CUSTOMER_ORDER_FLAG NOT NULL VARCHAR2(1)
INTERNAL_ORDER_FLAG NOT NULL VARCHAR2(1)
SERVICE_ITEM_FLAG NOT NULL VARCHAR2(1)
INVENTORY_ITEM_FLAG NOT NULL VARCHAR2(1)
ENG_ITEM_FLAG NOT NULL VARCHAR2(1)
INVENTORY_ASSET_FLAG NOT NULL VARCHAR2(1)
PURCHASING_ENABLED_FLAG NOT NULL VARCHAR2(1)
CUSTOMER_ORDER_ENABLED_FLAG NOT NULL VARCHAR2(1)
INTERNAL_ORDER_ENABLED_FLAG NOT NULL VARCHAR2(1)
SO_TRANSACTIONS_FLAG NOT NULL VARCHAR2(1)
MTL_TRANSACTIONS_ENABLED_FLAG NOT NULL VARCHAR2(1)
STOCK_ENABLED_FLAG NOT NULL VARCHAR2(1)
BOM_ENABLED_FLAG NOT NULL VARCHAR2(1)
BUILD_IN_WIP_FLAG NOT NULL VARCHAR2(1)
REVISION_QTY_CONTROL_CODE NUMBER
ITEM_CATALOG_GROUP_ID NUMBER
CATALOG_STATUS_FLAG VARCHAR2(1)
RETURNABLE_FLAG VARCHAR2(1)
DEFAULT_SHIPPING_ORG NUMBER
COLLATERAL_FLAG VARCHAR2(1)
TAXABLE_FLAG VARCHAR2(1)
QTY_RCV_EXCEPTION_CODE VARCHAR2(25)
ALLOW_ITEM_DESC_UPDATE_FLAG VARCHAR2(1)
INSPECTION_REQUIRED_FLAG VARCHAR2(1)
RECEIPT_REQUIRED_FLAG VARCHAR2(1)
MARKET_PRICE NUMBER
HAZARD_CLASS_ID NUMBER
RFQ_REQUIRED_FLAG VARCHAR2(1)
QTY_RCV_TOLERANCE NUMBER
LIST_PRICE_PER_UNIT NUMBER
UN_NUMBER_ID NUMBER
PRICE_TOLERANCE_PERCENT NUMBER
ASSET_CATEGORY_ID NUMBER
ROUNDING_FACTOR NUMBER
UNIT_OF_ISSUE VARCHAR2(25)
ENFORCE_SHIP_TO_LOCATION_CODE VARCHAR2(25)
ALLOW_SUBSTITUTE_RECEIPTS_FLAG VARCHAR2(1)
ALLOW_UNORDERED_RECEIPTS_FLAG VARCHAR2(1)
ALLOW_EXPRESS_DELIVERY_FLAG VARCHAR2(1)
DAYS_EARLY_RECEIPT_ALLOWED NUMBER
DAYS_LATE_RECEIPT_ALLOWED NUMBER
RECEIPT_DAYS_EXCEPTION_CODE VARCHAR2(25)
RECEIVING_ROUTING_ID NUMBER
INVOICE_CLOSE_TOLERANCE NUMBER
RECEIVE_CLOSE_TOLERANCE NUMBER
AUTO_LOT_ALPHA_PREFIX VARCHAR2(30)
START_AUTO_LOT_NUMBER VARCHAR2(30)
LOT_CONTROL_CODE NUMBER
SHELF_LIFE_CODE NUMBER
SHELF_LIFE_DAYS NUMBER
SERIAL_NUMBER_CONTROL_CODE NUMBER
START_AUTO_SERIAL_NUMBER VARCHAR2(30)
AUTO_SERIAL_ALPHA_PREFIX VARCHAR2(30)
SOURCE_TYPE NUMBER
SOURCE_ORGANIZATION_ID NUMBER
SOURCE_SUBINVENTORY VARCHAR2(10)
EXPENSE_ACCOUNT NUMBER
ENCUMBRANCE_ACCOUNT NUMBER
RESTRICT_SUBINVENTORIES_CODE NUMBER
UNIT_WEIGHT NUMBER
WEIGHT_UOM_CODE VARCHAR2(3)
VOLUME_UOM_CODE VARCHAR2(3)
UNIT_VOLUME NUMBER
RESTRICT_LOCATORS_CODE NUMBER
LOCATION_CONTROL_CODE NUMBER
SHRINKAGE_RATE NUMBER
ACCEPTABLE_EARLY_DAYS NUMBER
PLANNING_TIME_FENCE_CODE NUMBER
DEMAND_TIME_FENCE_CODE NUMBER
LEAD_TIME_LOT_SIZE NUMBER
STD_LOT_SIZE NUMBER
CUM_MANUFACTURING_LEAD_TIME NUMBER
OVERRUN_PERCENTAGE NUMBER
MRP_CALCULATE_ATP_FLAG VARCHAR2(1)
ACCEPTABLE_RATE_INCREASE NUMBER
ACCEPTABLE_RATE_DECREASE NUMBER
CUMULATIVE_TOTAL_LEAD_TIME NUMBER
PLANNING_TIME_FENCE_DAYS NUMBER
DEMAND_TIME_FENCE_DAYS NUMBER
END_ASSEMBLY_PEGGING_FLAG VARCHAR2(1)
REPETITIVE_PLANNING_FLAG VARCHAR2(1)
PLANNING_EXCEPTION_SET VARCHAR2(10)
BOM_ITEM_TYPE NOT NULL NUMBER
PICK_COMPONENTS_FLAG NOT NULL VARCHAR2(1)
REPLENISH_TO_ORDER_FLAG NOT NULL VARCHAR2(1)
BASE_ITEM_ID NUMBER
ATP_COMPONENTS_FLAG NOT NULL VARCHAR2(1)
ATP_FLAG NOT NULL VARCHAR2(1)
FIXED_LEAD_TIME NUMBER
VARIABLE_LEAD_TIME NUMBER
WIP_SUPPLY_LOCATOR_ID NUMBER
WIP_SUPPLY_TYPE NUMBER
WIP_SUPPLY_SUBINVENTORY VARCHAR2(10)
PRIMARY_UOM_CODE VARCHAR2(3)
PRIMARY_UNIT_OF_MEASURE VARCHAR2(25)
ALLOWED_UNITS_LOOKUP_CODE NUMBER
COST_OF_SALES_ACCOUNT NUMBER
SALES_ACCOUNT NUMBER
DEFAULT_INCLUDE_IN_ROLLUP_FLAG VARCHAR2(1)
INVENTORY_ITEM_STATUS_CODE VARCHAR2(10)
INVENTORY_PLANNING_CODE NUMBER
PLANNER_CODE VARCHAR2(10)
PLANNING_MAKE_BUY_CODE NUMBER
FIXED_LOT_MULTIPLIER NUMBER
ROUNDING_CONTROL_TYPE NUMBER
CARRYING_COST NUMBER
POSTPROCESSING_LEAD_TIME NUMBER
PREPROCESSING_LEAD_TIME NUMBER
FULL_LEAD_TIME NUMBER
ORDER_COST NUMBER
MRP_SAFETY_STOCK_PERCENT NUMBER
MRP_SAFETY_STOCK_CODE NUMBER
MIN_MINMAX_QUANTITY NUMBER
MAX_MINMAX_QUANTITY NUMBER
MINIMUM_ORDER_QUANTITY NUMBER
FIXED_ORDER_QUANTITY NUMBER
FIXED_DAYS_SUPPLY NUMBER
MAXIMUM_ORDER_QUANTITY NUMBER
ATP_RULE_ID NUMBER
PICKING_RULE_ID NUMBER
RESERVABLE_TYPE NUMBER
POSITIVE_MEASUREMENT_ERROR NUMBER
NEGATIVE_MEASUREMENT_ERROR NUMBER
ENGINEERING_ECN_CODE VARCHAR2(50)
ENGINEERING_ITEM_ID NUMBER
ENGINEERING_DATE DATE
SERVICE_STARTING_DELAY NUMBER
VENDOR_WARRANTY_FLAG NOT NULL VARCHAR2(1)
SERVICEABLE_COMPONENT_FLAG VARCHAR2(1)
SERVICEABLE_PRODUCT_FLAG NOT NULL VARCHAR2(1)
BASE_WARRANTY_SERVICE_ID NUMBER
PAYMENT_TERMS_ID NUMBER
PREVENTIVE_MAINTENANCE_FLAG VARCHAR2(1)
PRIMARY_SPECIALIST_ID NUMBER
SECONDARY_SPECIALIST_ID NUMBER
SERVICEABLE_ITEM_CLASS_ID NUMBER
TIME_BILLABLE_FLAG VARCHAR2(1)
MATERIAL_BILLABLE_FLAG VARCHAR2(30)
EXPENSE_BILLABLE_FLAG VARCHAR2(1)
PRORATE_SERVICE_FLAG VARCHAR2(1)
COVERAGE_SCHEDULE_ID NUMBER
SERVICE_DURATION_PERIOD_CODE VARCHAR2(10)
SERVICE_DURATION NUMBER
WARRANTY_VENDOR_ID NUMBER
MAX_WARRANTY_AMOUNT NUMBER
RESPONSE_TIME_PERIOD_CODE VARCHAR2(30)
RESPONSE_TIME_VALUE NUMBER
NEW_REVISION_CODE VARCHAR2(30)
INVOICEABLE_ITEM_FLAG NOT NULL VARCHAR2(1)
TAX_CODE VARCHAR2(50)
INVOICE_ENABLED_FLAG NOT NULL VARCHAR2(1)
MUST_USE_APPROVED_VENDOR_FLAG NOT NULL VARCHAR2(1)
REQUEST_ID NUMBER
PROGRAM_APPLICATION_ID NUMBER
PROGRAM_ID NUMBER
PROGRAM_UPDATE_DATE DATE
OUTSIDE_OPERATION_FLAG NOT NULL VARCHAR2(1)
OUTSIDE_OPERATION_UOM_TYPE VARCHAR2(25)
SAFETY_STOCK_BUCKET_DAYS NUMBER
AUTO_REDUCE_MPS NUMBER(22)
COSTING_ENABLED_FLAG NOT NULL VARCHAR2(1)
AUTO_CREATED_CONFIG_FLAG NOT NULL VARCHAR2(1)
CYCLE_COUNT_ENABLED_FLAG NOT NULL VARCHAR2(1)
ITEM_TYPE VARCHAR2(30)
MODEL_CONFIG_CLAUSE_NAME VARCHAR2(10)
SHIP_MODEL_COMPLETE_FLAG VARCHAR2(1)
MRP_PLANNING_CODE NUMBER
RETURN_INSPECTION_REQUIREMENT NUMBER
ATO_FORECAST_CONTROL NUMBER
RELEASE_TIME_FENCE_CODE NUMBER
RELEASE_TIME_FENCE_DAYS NUMBER
CONTAINER_ITEM_FLAG VARCHAR2(1)
VEHICLE_ITEM_FLAG VARCHAR2(1)
MAXIMUM_LOAD_WEIGHT NUMBER
MINIMUM_FILL_PERCENT NUMBER
CONTAINER_TYPE_CODE VARCHAR2(30)
INTERNAL_VOLUME NUMBER
WH_UPDATE_DATE DATE
PRODUCT_FAMILY_ITEM_ID NUMBER
GLOBAL_ATTRIBUTE_CATEGORY VARCHAR2(150)
GLOBAL_ATTRIBUTE1 VARCHAR2(150)
GLOBAL_ATTRIBUTE2 VARCHAR2(150)
GLOBAL_ATTRIBUTE3 VARCHAR2(150)
GLOBAL_ATTRIBUTE4 VARCHAR2(150)
GLOBAL_ATTRIBUTE5 VARCHAR2(150)
GLOBAL_ATTRIBUTE6 VARCHAR2(150)
GLOBAL_ATTRIBUTE7 VARCHAR2(150)
GLOBAL_ATTRIBUTE8 VARCHAR2(150)
GLOBAL_ATTRIBUTE9 VARCHAR2(150)
GLOBAL_ATTRIBUTE10 VARCHAR2(150)
PURCHASING_TAX_CODE VARCHAR2(50)
The query is as below
select segment1 from mtl_system_items where organization_id = 100 and inventory_item_id like '123456%'
The explain plan is as below -
Plan
SELECT STATEMENT RULE
2 TABLE ACCESS BY INDEX ROWID INV.MTL_SYSTEM_ITEMS
1 INDEX RANGE SCAN NON-UNIQUE INV.MTL_SYSTEM_ITEMS_N1
The INV.MTL_SYSTEM_ITEMS_N1 index is created on
ORGANIZATION_ID and SEGMENT1
Maybe you are looking for
-
Problems with PS and AU with CC
Hi, I am very annoyed with CC!!!! Before, I used the trial of PS and changed to CC when the trial was finished. I've bought CC but I still cannot use PS!!!!!! Every time I open it, it asked my about serial number!!!! I know there is no serial number
-
Just a question, I need help
I have about 750 songs in my ipod and the main computer that itunes was in I no longer have and I want to keep all of my songs that are in my ipod, but i was wondering if there is any way that i can load my ipod into my new computer without losing my
-
My old computer died. I got a new computer 2 weeks ago. I tried using the restore from backup function as described in the Mozilla help article. However, when I click on the bookmark icon, it only shows menus, not the library as described in the arti
-
What is Row level security in SSAS?
Hi All, What is row level security in SSAS? How many ways to provide security to a cube?
-
After renting a movie, why i can't download my movie?
My apple tv 2 can't read any movie even it's already rent it.