Sql takes long time
Dear all,
The following sql takes more than 2 minutes to execute.
select * from ( select historyent0_.TRANSACTION_ID as col_0_0_, historyent0_.TRANSACTION_HISTORY_ID as col_1_0_
from TRANSACTION_HISTORY historyent0_ where (historyent0_.TRANSACTION_HISTORY_ID in
(select max(historyent1_.TRANSACTION_HISTORY_ID) from TRANSACTION_HISTORY historyent1_ group by
historyent1_.TRANSACTION_ID)) and historyent0_.TRANSACTION_STATE_ID<4 and historyent0_.USER_NAME<>:1 )
where rownum <= :2;
I have created an index
(TRANSACTION_HISTORY_ID,TRANSACTION_ID)
The Plan is :
SELECT STATEMENT ALL_ROWSCost: 107,479 Bytes: 227.286.444 Cardinality: 5.411.582
6 COUNT STOPKEY
5 HASH JOIN Cost: 107,479 Bytes: 227.286.444 Cardinality: 5.411.582
3 VIEW VIEW SYS.VW_NSO_1 Cost: 45,87 Bytes: 76.148.033 Cardinality: 5.857.541
2 HASH GROUP BY Cost: 45,87 Bytes: 70.290.492 Cardinality: 5.857.541
1 INDEX FAST FULL SCAN INDEX NIBC_FOP_AED.TEST_TRAN_HIST_IDX Cost: 8,756 Bytes: 140.464.128 Cardinality: 11.705.344
4 TABLE ACCESS FULL TABLE NIBC_FOP_AED.TRANSACTION_HISTORY Cost: 43,995 Bytes: 156.935.878 Cardinality: 5.411.582Can someone please suggest
You can try this and see if it helps.
Issue is you are getting millions of rows in return and then you're doing where rownum< .... So the
query has to run in full in any case.
Try to use first rows hint if you care about getting immediate results.
Try performing fts
convert your rownum < :xyz into an actual column filter from the refined rows.....
Cheers
www.oraclefusions.com
Please visit my site for free performance tuning oracle tools.
The only real time Server-side SQL Sniffer tool developed:http://www.oraclefusions.com/applications.html#sniffer
Similar Messages
-
How to tune this SQL (takes long time to come up with results)
Dear all,
I have sum SQL which takes long time ... can any one help me to tune this.... thank You
SELECT SUM (n_amount)
FROM (SELECT DECODE (v_payment_type,
'D', n_amount,
'C', -n_amount
) n_amount, v_vou_no
FROM vouch_det a, temp_global_temp b
WHERE a.v_vou_no = TO_CHAR (b.n_column2)
AND b.n_column1 = :b5
AND b.v_column1 IN (:b4, :b3)
AND v_desc IN (SELECT v_trans_source_code
FROM benefit_trans_source
WHERE v_income_tax_app = :b6)
AND v_lob_code = DECODE (:b1, :b2, v_lob_code, :b1)
UNION ALL
SELECT DECODE (v_payment_type,
'D', n_amount,
'C', -n_amount
* -1 AS n_amount,
v_vou_no
FROM vouch_details a, temp_global_temp b
WHERE a.v_vou_no = TO_CHAR (b.n_column2)
AND b.n_column1 = :b5
AND b.v_column1 IN (:b12, :b11, :b10, :b9, :b8, :b7)
AND v_desc IN (SELECT v_trans_source_code
FROM benefit_trans_source
WHERE income_tax_app = :b6)
AND v_lob_code = DECODE (:b1, :b2, v_lob_code, :b1));
Thank You.....Thanks a lot,
i did change the SQL it works fine but slows down my main query.... actually my main query is calling a function which does the sum......
here is the query.....?
select A.* from (SELECT a.n_agent_no, a.v_agent_code, a.n_channel_no, v_iden_no, a.n_cust_ref_no, a.v_agent_type, a.v_company_code,
a.v_company_branch, a.v_it_no, bfn_get_agent_name(a.n_agent_no) agentname,
PKG_AGE__TAX.GET_TAX_AMT(:P_FROM_DATE,:P_TO_DATE,:P_LOB_CODE,A.N_AGENT_NO) comm,
c.v_ird_region
FROM agent_master a, agent_lob b, agency_region c
WHERE a.n_agent_no = b.n_agent_no
AND a.v_agency_region = c.v_agency_region
AND :p_lob_code = DECODE(:p_lob_code,'ALL', 'ALL',b.v_line_of_business)
AND :p_channel_no = DECODE(:p_channel_no,1000, 1000,a.n_channel_no)
AND :p_agency_group = DECODE(:p_agency_group,'ALL', 'ALL',c.v_ird_region)
group by a.n_agent_no, a.v_agent_code, a.n_channel_no, v_iden_no, a.n_cust_ref_no, a.v_agent_type, a.v_company_code, a.v_company_branch, a.v_it_no, bfn_get_agent_name(a.n_agent_no) ,
BPG_AGENCY_GEN_ACL_TAX.BFN_GET_TAX_AMOUNT(:P_FROM_DATE,:P_TO_DATE,:P_LOB_CODE,A.N_AGENT_NO),
c.v_ird_region
ORDER BY c.v_ird_region, a.v_agent_code DESC)
A
WHERE (COMM < :P_VAL_IND OR COMM >=:P_VAL_IND1);
Any idea to make this faster....
Thank You... -
How to tune this smiple SQL (takes long time to come up with results)
the following SQL is very slow as it takes one day to complete...
select A.* from (SELECT a.n_agent_no, a.v_agent_code, a.n_channel_no, v_iden_no, a.n_cust_ref_no, a.v_agent_type, a.v_company_code,
a.v_company_branch, a.v_it_no, bfn_get_agent_name(a.n_agent_no) agentname,
PKG_AGE__TAX.GET_TAX_AMT(:P_FROM_DATE,:P_TO_DATE,:P_LOB_CODE,A.N_AGENT_NO) comm,
c.v_ird_region
FROM agent_master a, agent_lob b, agency_region c
WHERE a.n_agent_no = b.n_agent_no
AND a.v_agency_region = c.v_agency_region
--AND :p_lob_code = DECODE(:p_lob_code,'ALL', 'ALL',b.v_line_of_business)
--AND :p_channel_no = DECODE(:p_channel_no,1000, 1000,a.n_channel_no)
--AND :p_agency_group = DECODE(:p_agency_group,'ALL', 'ALL',c.v_ird_region)
group by a.n_agent_no, a.v_agent_code, a.n_channel_no, v_iden_no, a.n_cust_ref_no, a.v_agent_type, a.v_company_code, a.v_company_branch, a.v_it_no, bfn_get_agent_name(a.n_agent_no) ,
BPG_AGENCY_GEN_ACL_TAX.BFN_GET_TAX_AMOUNT(:P_FROM_DATE,:P_TO_DATE,:P_LOB_CODE,A.N_AGENT_NO),
c.v_ird_region
ORDER BY c.v_ird_region, a.v_agent_code DESC)
A
WHERE (COMM < :P_VAL_IND OR COMM >=:P_VAL_IND1);
. .it should return all the agents with commission based on the date parameter... data is less then 50 K inside all
the tables...
the version is Oracle9i Enterprise Edition Release 9.2.0.5.0
SQL> explain plan for
2 select A.* from (SELECT a.n_agent_no, a.v_agent_code, a.n_channel_no, v_iden_no, a.n_cust_ref_
no, a.v_agent_type, a.v_company_code,
3 a.v_company_branch, a.v_it_no, bfn_get_agent_name(a.n_agent_no) agentname,
4 BPG_AGENCY_GEN_ACL_TAX.BFN_GET_TAX_AMOUNT(:P_FROM_DATE,:P_TO_DATE,:P_LOB_CODE,A.N_AGENT_NO) com
m,
5 c.v_ird_region
6 FROM ammm_agent_master a, ammt_agent_lob b, gnlu_agency_region c
7 WHERE a.n_agent_no = b.n_agent_no
8 AND a.v_agency_region = c.v_agency_region
9 --AND :p_lob_code = DECODE(:p_lob_code,'ALL', 'ALL',b.v_line_of_business)
10 --AND :p_channel_no = DECODE(:p_channel_no,1000, 1000,a.n_channel_no)
11 --AND :p_agency_group = DECODE(:p_agency_group,'ALL', 'ALL',c.v_ird_region)
12 group by a.n_agent_no, a.v_agent_code, a.n_channel_no, v_iden_no, a.n_cust_ref_no, a.v_agent_ty
pe, a.v_company_code, a.v_company_branch, a.v_it_no, bfn_get_agent_name(a.n_agent_no) ,
13 BPG_AGENCY_GEN_ACL_TAX.BFN_GET_TAX_AMOUNT(:P_FROM_DATE,:P_TO_DATE,:P_LOB_CODE,A.N_AGENT_NO),
14 c.v_ird_region
15 ORDER BY c.v_ird_region, a.v_agent_code DESC)
16 A
17 WHERE (COMM < :P_VAL_IND OR COMM >=:P_VAL_IND1);
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)|
| 0 | SELECT STATEMENT | | 13315 | 27M| | 859 (63)|
| 1 | VIEW | | 13315 | 27M| | |
| 2 | SORT GROUP BY | | 13315 | 936K| 2104K| 859 (63)|
| 3 | HASH JOIN | | 13315 | 936K| | 641 (81)|
| 4 | MERGE JOIN | | 3118 | 204K| | 512 (86)|
| 5 | TABLE ACCESS BY INDEX ROWID| AGENCY_REGION | 8 | 152 | | 3 (34)|
| 6 | INDEX FULL SCAN | SYS_C004994 | 8 | | | 2 (50)|
| 7 | SORT JOIN | | 3142 | 147K| | 510 (86)|
| 8 | TABLE ACCESS FULL | AGENT_MASTER | 3142 | 147K| | 506 (86)|
| 9 | TABLE ACCESS FULL | AGENT_LOB | 127K| 623K| | 102 (50)|
Note: PLAN_TABLE' is old version
17 rows selected.
..This is the only information i can get as i cannot access over database server (user security limitation)...
Thank YouTry to remove this:
ORDER BY c.v_ird_region, a.v_agent_code DESCOr move it to the end of entire query.
Edited by: Random on Jun 19, 2009 1:01 PM -
Report takes long time for few records
hi frends,
I m facing one problem with my Web based erp application which is developed in .net , in my application when i open the report from my applicaiton , in my temp folder there one file gets created name is "rpt conmgr cache"
bcoz of this for few records also my report takes too much time and opens very slow and it takes long time, and it happens in some of the reports only , other reports are working cool and its not creating any file in temp folder,,, so can u guide me whats this file and what can be the solution for it,
Thanks
Mithunhi sabhajit,
i have already checked the sql query it is taking less then seconds.
any other steps u want me to check then pls let me know?
thanks mithun -
Materialized view takes long time to refresh but when i tried select & insert into table it's very fast.
i executed SQL and it takes ust 1min ( total rows is 447 )
but while i refresh the MVIEW it takes 1.5 hrs ( total rows is 447 )
MVIEW configration :-
CREATE MATERIALIZED VIEW EVAL.EVALSEARCH_PRV_LWC
TABLESPACE EVAL_T_S_01
NOCACHE
NOLOGGING
NOCOMPRESS
NOPARALLEL
BUILD DEFERRED
REFRESH FORCE ON DEMAND
WITH PRIMARY KEY
Not sure why so much diffrenceinfant_raj wrote:
Materialized view takes long time to refresh but when i tried select & insert into table it's very fast.
i executed SQL and it takes ust 1min ( total rows is 447 )
but while i refresh the MVIEW it takes 1.5 hrs ( total rows is 447 )A SELECT does a consistent read.
A MV refresh does that and also writes database data.
These are not the same thing and cannot be directly compared.
So instead of pointing at the SELECT execution time and asking why the MV refresh is not as fast, look instead WHAT the refresh is doing and HOW it is doing that.
Is the execution plan sane? What events are the top ones for the MV refresh? What are the wait states that contributes most to the processing time of the refresh?
You cannot use the SELECT statement's execution time as a direct comparison metric. The work done by the refresh is more than the work done by the SELECT. You need to determine exactly what work is done by the refresh and whether that work is done in a reasonable time, and how other sessions are impacting the refresh (it could very well be blocked by another session). -
SSRS 2012. ReportServer takes long time to be up.
SSRS 2012 Sp1
Hi guys,
I am using SSRS as my reporting platform, but I have always got the following issue.
SSRS ReportServer takes time to load.
The first time takes long, then less time but only if the ReprotServer web page is continuosly retrived.
HERE the problem:
If the ReprotServer page is not used after a short time (let me say 10 min), the page takes long time to be up again.
I have checked the configuration that is set as for default 12 hours.
Is there a way to speed up the ReportServer opening page time?
Thanks for your helpHi Fasttrack2,
According to your description, you want to optimize the performance of your report. Right?
In this scenario, when your report page is not active for a short time, it will take long time to render again. This is because the you have the report timeout. You can select "Do not timeout report" in Processing. Please refer to the link below:
SQL Server Reporting Services – Timeout Settings
For the performance issue, it can be many reason cause the report running slowly. Please refer to the articles below to optimize the report:
More tips to improve performance of SSRS reports.
Reporting Services Performance and Optimization
Troubleshooting Reports: Report Performance
If you have any question, please feel free to ask.
Best Regards,
Simon Hou -
Why update query takes long time ?
Hello everyone;
My update query takes long time. In emp ( self testing) just having 2 records.
when i issue update query , it takes long time;
SQL> select * from emp;
EID ENAME EQUAL ESALARY ECITY EPERK ECONTACT_NO
2 rose mca 22000 calacutta 9999999999
1 sona msc 17280 pune 9999999999
Elapsed: 00:00:00.05
SQL> update emp set esalary=12000 where eid='1';
update emp set esalary=12000 where eid='1'
* ERROR at line 1:
ORA-01013: user requested cancel of current operation
Elapsed: 00:01:11.72
SQL> update emp set esalary=15000;
update emp set esalary=15000
* ERROR at line 1:
ORA-01013: user requested cancel of current operation
Elapsed: 00:02:22.27Hi BCV;
Thanks for your reply but it doesn't provide output, please see this.
SQL> update emp set esalary=15000;
........... Lock already occured.
>> trying to trace >>
SQL> select HOLDING_SESSION from dba_blockers;
HOLDING_SESSION
144
SQL> select sid , username, event from v$session where username='HR';
SID USERNAME EVENT
144 HR SQL*Net message from client
151 HR enq: TX - row lock contention
159 HR SQL*Net message from client
>> It does n 't provide clear output about transaction lock >>
SQL> SELECT username, v$lock.SID, TRUNC (id1 / POWER (2, 16)) rbs,
2 BITAND (id1, TO_NUMBER ('ffff', 'xxxx')) + 0 slot, id2 seq, lmode,
3 request
4 FROM v$lock, v$session
5 WHERE v$lock.TYPE = 'TX'
6 AND v$lock.SID = v$session.SID
7 AND v$session.username = USER;
no rows selected
SQL> select MACHINE from v$session where sid = :sid;
SP2-0552: Bind variable "SID" not declared. -
Oracle report formatting takes long time
hi
i am using oracle 10g Application Server 9.0.4.0.0 on Red hat linux AS 3
oracle reports are run thru JSP's
some reports take long time to execute though query in it if executed on sql plus are fast.
it is fond that that formatting is going on for those reports
what might be the reason for this??
is the data fetched first and then formatting takes place as per data??
waiting for reply
Avinashhi
i am using oracle 10g Application Server 9.0.4.0.0 on Red hat linux AS 3
oracle reports are run thru JSP's
some reports take long time to execute though query in it if executed on sql plus are fast.
it is fond that that formatting is going on for those reports
what might be the reason for this??
is the data fetched first and then formatting takes place as per data??
waiting for reply
Avinash -
Runbook takes long time to complete
Hi,
I created a customized flow to get the data from MS SQL. The runbook is working fine but it takes long time to complete. Is there any option to increase speed or something like that..?
Regards,
Soundarajan.If you look on the Log tab you can see which activity that took the longest. What does you runbook looks like? If you have for example a Run .NET script activity you can do some tuning on the runbook server. But I think a good start is to share a
figure of your runbook.
Anders Bengtsson | Microsoft PFE | blog at http://www.contoso.se -
Procedure takes long time to execute...
Hi all
i wrote the proxcedure but it takes long time to execute.
The INterdata table contains 300 records.
Here is the procedure:
create or replace procedure inter_filter
is
/*v_sessionid interdata.sessionid%type;
v_clientip interdata.clientip%type;
v_userid interdata.userid%type;
v_logindate interdata%type;
v_createddate interdata%type;
v_sourceurl interdata%type;
v_destinationurl interdata%type;*/
v_sessionid filter.sessionid%type;
v_filterid filter.filterid%type;
cursor c1 is
select sessionid,clientip,browsertype,userid,logindate,createddate,sourceurl,destinationurl
from interdata;
cursor c2 is
select sessionid,filterid
from filter;
begin
open c2;
loop
fetch c2 into v_sessionid,v_filterid;
for i in c1 loop
if i.sessionid = v_sessionid then
insert into filterdetail(filterdetailid,filterid,sourceurl,destinationurl,createddate)
values (filterdetail_seq.nextval,v_filterid,i.sourceurl,i.destinationurl,i.createddate);
else
insert into filter (filterid,sessionid,clientip,browsertype,userid,logindate,createddate)
values (filter_seq.nextval,i.sessionid,i.clientip,i.browsertype,i.userid,i.logindate,i.createddate);
insert into filterdetail(filterdetailid,filterid,sourceurl,destinationurl,createddate)
values (filterdetail_seq.nextval,filter_seq.currval,i.sourceurl,i.destinationurl,i.createddate);
end if;
end loop;
end loop;
commit;
end
Please Help!
Prathameshi wrote the proxcedure but it takes long time to execute.Please define "long time". How long does it take? What are you expecting it to take?
The INterdata table contains 300 records.But how many records are there in the FILTER table? As this is the one you are driving off this is going to determine the length of time it takes to complete. Also, this solution inserts every row in the INTERDATA table for each row in the FILTER table - in other words, if the FILTER table has twenty rows to start with you are going to end up with 6000 rows in FILTERDETAIL. No wonder it takes a long time. Is that want you want?
Also of course, you are using PL/SQL cursors when you ought to be using set operations. Did you try the solution I posted in Re: Confusion in this scenario>>>>>>> on this topic?
Cheers, APC -
Dear Experts, i tried to enable audit option in oracle 10.2 .0 database which is running on windows box, after set this command , i tried to restart the DB with shutdown (only) option.
ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;
but its takes long time to complete i checked the alert log file , its showing
ALTER SYSTEM SET audit_trail='DB' SCOPE=SPFILE;
Wed Feb 01 12:23:48 2012
Starting background process EMN0
EMN0 started with pid=29, OS id=4836
Wed Feb 01 12:23:49 2012
Shutting down instance: further logons disabled
Wed Feb 01 12:23:50 2012
Stopping background process QMNC
Streams Apply Server P001 pid=16 OS id=3708 stopped
Wed Feb 01 12:23:51 2012
Stopping background process CJQ0
Streams Apply Reader P000 pid=15 OS id=3660 stopped
Wed Feb 01 12:23:52 2012
Errors in file e:\oracle\product\10.2.0\admin\std\bdump\psacc_p000_3660.trc:
ORA-10388: parallel query server interrupt (failure)
Streams Apply Server P004 pid=25 OS id=2124 stopped
Wed Feb 01 12:23:52 2012
Errors in file e:\oracle\product\10.2.0\admin\std\bdump\psacc_p004_2124.trc:
ORA-10388: parallel query server interrupt (failure)
Wed Feb 01 12:23:53 2012
Errors in file e:\oracle\product\10.2.0\admin\std\bdump\psacc_p001_3708.trc:
ORA-10388: parallel query server interrupt (failure)
Streams Apply Server P002 pid=23 OS id=2404 stopped
Wed Feb 01 12:23:53 2012
Errors in file e:\oracle\product\10.2.0\admin\std\bdump\psacc_p002_2404.trc:
ORA-10388: parallel query server interrupt (failure)
Streams Apply Server P003 pid=24 OS id=1372 stopped
Wed Feb 01 12:23:54 2012
Errors in file e:\oracle\product\10.2.0\admin\std\bdump\psacc_p003_1372.trc:
ORA-10388: parallel query server interrupt (failure)
Wed Feb 01 12:23:54 2012
Stopping background process MMNL
Wed Feb 01 12:23:54 2012
Streams APPLY A001 with pid=17, OS id=3400 stopped
Wed Feb 01 12:23:55 2012
Stopping background process MMON
Wed Feb 01 12:23:57 2012
Shutting down instance (normal)
License high water mark = 21
Wed Feb 01 12:23:57 2012
Stopping Job queue slave processes
Wed Feb 01 12:23:57 2012
Job queue slave processes stopped
Wed Feb 01 12:28:57 2012
Active process 2572 user 'SYSTEM' program 'ORACLE.EXE (SHAD)'
Active process 3156 user 'SYSTEM' program 'ORACLE.EXE (SHAD)'
Active process 3416 user 'SYSTEM' program 'ORACLE.EXE (SHAD)'
Active process 5596 user 'SYSTEM' program 'ORACLE.EXE (SHAD)'
Active process 5200 user 'SYSTEM' program 'ORACLE.EXE (SHAD)'
Active process 5980 user 'SYSTEM' program 'ORACLE.EXE (SHAD)'
SHUTDOWN: waiting for logins to complete.
Wed Feb 01 12:43:28 2012
MMNL absent for 1203 secs; Foregrounds taking over
there is no more info after this line..... can any one please help on this , how to solve this issue... waiting for morethan 40 mins stil is running... guide me to proceed next step to complete this.... thanks in advanceUse anothe command prompt and type sqlplus.
For e.g in my system.
C:\Documents and Settings\ranjit>sqlplus
SQLPlus: Release 11.2.0.1.0 Production on Wed Feb 1 13:46:33 2012*
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Enter user-name: sys as sysdba
Enter password:
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
*SQL>
Once you saw this.. type "shu abort;"
This will abruptly shutdown the database. It is safe to run in non production databases however. And while starting up, it will to the recovery(which may take some time again to startup database).
Regards -
Why it takes long time to establish Database Connection ???
Can any one please have a look on the following code snippet and show me which mistake I'm doing so it take long time to connect to DB(more than 5 minutes !!!!)
Thanx in advance ...
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("oracle.jdbc.driver.OracleDriver");
String dbString2 = "jdbc:oracle:thin:@" + "127.0.0.1" + ":" + "1521" + ":" + "nat";
aCon = DriverManager.getConnection(dbString2, "scott", "tiger");
stmt = aCon.createStatement();
System.out.println("Connection to DB Established");
catch (ClassNotFoundException cnfe)
System.out.println("Class not found:");
cnfe.printStackTrace();
catch (SQLException sqle)
System.out.println("SQL Exception: " + sqle.toString());
sqle.printStackTrace();Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Why do you need this if you are going to Oracle. Try
removing this. It might be trying things out with the
old driver and then moving to the new driver. This has nothing to do with it. (And it doesn't "try things out")
>
Also check your machines. They might be slow. There is
no reason, it should take more than few hundred
milliseconds to connect to a database on localhost as
your case is.Possible reasons...
- Network traffic
- Faulty router/gateway
- Busy server
- Faulty network card (either end)
- Conflict with another box -
My query take long time..
The output of tkprof of my trace file is :
SELECT ENEXT.NUM_PRSN_EMPLY ,ENEXT.COD_BUSUN ,ENEXT.DAT_CALDE ,ENEXT.COD_SHFT
FROM
AAC_EMPLOYEE_ENTRY_EXITS5_VIW ENEXT ,PDS.PDS_EMPLOYEES EMPL ,
PDS.PDS_EMPLOYMENT_TYPES EMPTYP ,PDS.PDS_PAY_CONDITIONS PAYCON WHERE
ENEXT.DAT_CALDE BETWEEN :B6 AND :B5 AND ENEXT.NUM_PRSN_EMPLY IN (SELECT
ATT21 FROM APPS.GLOBAL_TEMPS WHERE ATT1 = 'PRSN') AND ENEXT.NUM_PRSN_EMPLY =
EMPL.NUM_PRSN_EMPLY AND EMPL.EMTYP_COD_EMTYP = EMPTYP.COD_EMTYP AND
EMPTYP.LKP_COD_STA_PAY_EMTYP <> 3 AND
NVL(EMPL.LKP_MNTLY_WITHOUT_ENEXT_EMPLY,2) <> 1 AND EMPL.PCOND_COD_STA_PCOND
= PAYCON.COD_STA_PCOND AND NVL(EMPL.LKP_MNTLY_WITHOUT_ENEXT_EMPLY,2) <> 1
AND PAYCON.LKP_FLG_STA_PAY_PCOND = 1 AND ENEXT.DAT_CALDE >=
EMPL.DAT_EMPLT_EMPLY AND ENEXT.DAT_CALDE <= NVL(EMPL.DAT_DSMSL_EMPLY,
TO_DATE('15001229','YYYYMMDD')) AND 1 = (CASE WHEN
ENEXT.LKP_STA_HOLIDAY_CALNR = 2 AND ENEXT.LKP_CAT_SHFT_SHTAB = 1 AND
ENEXT.TYP_DAY BETWEEN 4 AND 6 THEN 0 WHEN ENEXT.LKP_STA_HOLIDAY_CALNR = 2
AND ENEXT.LKP_CAT_SHFT_SHTAB = 1 AND ENEXT.TYP_DAY NOT BETWEEN 4 AND 6 THEN
1 WHEN ENEXT.LKP_STA_HOLIDAY_CALNR = 2 AND ENEXT.LKP_CAT_SHFT_SHTAB = 2
THEN 0 WHEN ENEXT.LKP_STA_HOLIDAY_CALNR = 1 AND ENEXT.LKP_CAT_SHFT_SHTAB =
1 THEN 1 WHEN ENEXT.LKP_STA_HOLIDAY_CALNR = 1 AND ENEXT.LKP_CAT_SHFT_SHTAB =
2 THEN 0 END) AND ENEXT.LKP_COD_DPUT_BUSUN = NVL(:B4 ,
ENEXT.LKP_COD_DPUT_BUSUN) AND ENEXT.LKP_COD_MANAG_BUSUN = NVL(:B3 ,
ENEXT.LKP_COD_MANAG_BUSUN) AND ENEXT.COD_BUSUN = NVL(:B2 , ENEXT.COD_BUSUN)
AND ENEXT.COD_CAL = NVL(COD_CAL, ENEXT.COD_CAL) AND ENEXT.NUM_PRSN_EMPLY =
NVL(:B1 , ENEXT.NUM_PRSN_EMPLY) AND ENEXT.COD_SHFT IN (SELECT
SHFTBL.COD_SHTAB FROM AAC_SHIFT_TABLES SHFTBL WHERE
SHFTBL.LKP_CAT_SHFT_SHTAB = 1) AND ENEXT.DAT_CALDE NOT IN (SELECT ABN.DAT
FROM APPS.AAC_EMPL_EN_EX_ABNORMAL_VIW ABN WHERE ABN.PRSN =
ENEXT.NUM_PRSN_EMPLY AND ABN.DAT BETWEEN :B6 AND :B5 ) AND ENEXT.DAT_CALDE
IN (SELECT EMPENEXT.DAT_STR_SHFT_ENEXT FROM AAC.AAC_EMPLOYEE_ENTRY_EXITS
EMPENEXT WHERE EMPENEXT.EMPLY_NUM_PRSN_EMPLY = EMPL.NUM_PRSN_EMPLY AND
EMPENEXT.DAT_STR_SHFT_ENEXT BETWEEN :B6 AND :B5 AND
EMPENEXT.LKP_FLG_STA_ENEXT <> 3) ORDER BY ENEXT.NUM_PRSN_EMPLY,
ENEXT.DAT_CALDE
call count cpu elapsed disk query current rows
Parse 2 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 40.45 40.30 306 17107740 0 24
total 6 40.45 40.30 306 17107740 0 24
what is wrong in my query?
why it take long time?user13344656 wrote:
what is wrong in my query?
why it take long time?See PL/SQL forum FAQ
https://forums.oracle.com/forums/ann.jspa?annID=1535
*3. How to improve the performance of my query? / My query is running slow.*
SQL and PL/SQL FAQ
For instructions on what information to post an how to format it. -
SELECT DISTINCT xxxx
TO_CHAR(TRUNC(MTRAN.DAT_TRANSACTION_MTRAN), 'YYYY') DAT_TRANSACTION_MTRAN,
NVL((SELECT DISTINCT SUM(MTRAN1.QTY_PRIMARY_MTRAN)
FROM MAM_MATERIAL_TRANSACTIONS MTRAN1
WHERE TO_CHAR(TRUNC(MTRAN1.DAT_TRANSACTION_MTRAN),
'YYYY') =
TO_CHAR(TRUNC(MTRAN.DAT_TRANSACTION_MTRAN),
'YYYY')
AND TO_CHAR(TRUNC(MTRAN1.DAT_TRANSACTION_MTRAN),
'MM') = '01'
AND MTRAN1.MTYP_TRANSACTION_TYPE_ID IN
(41, 42, 43, 44, 45)
AND MTRAN1.ITEM_ITEM_ID_FOR = MTRAN.ITEM_ITEM_ID_FOR),
0) QTY_FARVARDIN,
NVL((SELECT DISTINCT SUM(MTRAN1.QTY_PRIMARY_MTRAN)
FROM M
i have a view like above with 10 select to select on one table.
this view take long time to execute ,how could i decrese this time!user498843 wrote:
SELECT DISTINCT xxxx
TO_CHAR(TRUNC(MTRAN.DAT_TRANSACTION_MTRAN), 'YYYY') DAT_TRANSACTION_MTRAN,
NVL((SELECT DISTINCT SUM(MTRAN1.QTY_PRIMARY_MTRAN)
FROM MAM_MATERIAL_TRANSACTIONS MTRAN1
WHERE TO_CHAR(TRUNC(MTRAN1.DAT_TRANSACTION_MTRAN),
'YYYY') =
TO_CHAR(TRUNC(MTRAN.DAT_TRANSACTION_MTRAN),
'YYYY')
AND TO_CHAR(TRUNC(MTRAN1.DAT_TRANSACTION_MTRAN),
'MM') = '01'
AND MTRAN1.MTYP_TRANSACTION_TYPE_ID IN
(41, 42, 43, 44, 45)
AND MTRAN1.ITEM_ITEM_ID_FOR = MTRAN.ITEM_ITEM_ID_FOR),
0) QTY_FARVARDIN,
NVL((SELECT DISTINCT SUM(MTRAN1.QTY_PRIMARY_MTRAN)
FROM M
i have a view like above with 10 select to select on one table.
this view take long time to execute ,how could i decrese this time!Thread: HOW TO: Post a SQL statement tuning request - template posting
HOW TO: Post a SQL statement tuning request - template posting -
BPM Process chain takes long time to process
We have BI7, Netweaver 2004s on Oracle and SUN Solaris
There is a process chain (BPM) which pulls data from the CRM system into BW. The scheduled time to run this chain is 0034 hrs. This chain should ideally complete before / around 0830 Hrs. <b>Now the problem is that every alternate day this chain behaves normally and gets completed well before 0830 hrs but every alternate day this chain fails </b> there are almost 40 chains running daily. Some are event triggered (dependent with each other) or some run in parallel. In this, (BPM) process chain, usually there are 5 requests with 3 Delta and 2 full uploads (Master Data). The delta uploads finishes in 30 minutes without any issues with very few record transfers. The first full upload is from 0034 hrs to approximately 0130 hrs and the 2nd upload is from 0130 hrs to 0230 hrs. Now if the 1st upload gets delayed then the people who are initiating these chains, stop the 2nd full upload and continue it after all the process chains are completed. Now this entire BPM process chain sometimes takes 17 -18 hrs to complete!!!!!
No other loads in CRM or BW when these process chains are running
CRM has background jobs to push IDOCS to BW which run every 2 minutes which runs successfully
Yesterday this chain got completed successfully (well within stipulated time) with over 33,00,000 records transferred but sometimes it has failed to transfer even 12,00,000 records!!
Attaching a zip file, please refer the 21 to 26 Analysis screen shot.doc from the zip file
Within the zip file, attaching Normal timings of daily process chains.xls the name explains it .
Also within the zip file refer BPM Infoprovider and data source screen shot.doc please refer this file as the infopackage (page 2) which was used in the process chain is not displayed later on in page number 6 BUT CHAIN GOT SUCESSFULLY COMPLETED
We have analyzed:--
1) The PSA data for BPM process chain for past few days
2) The info providers for BPM process chain for past few days
3) The ODS entries for BPM process chain for past few days
4) The point of failure of BPM process chain for past few days
5) The overall performance of all the process chains for past few days
6) The number of requests in BW for this process chain
7) The load on CRM system for past few days when this process chain ran on BW system
As per our analysis, there are couple of things which can be fixed in the BW system:--
1) The partner agreement (transaction WE20) defined for the partner LS/BP3CLNT475 mentions both message types RSSEND and RSINFO: -- collect IDOCs and pack size = 1 Since the pack size = 1 will generate 1 TRFC call per IDOC, it should be changed to 10 so that less number of TRFCs will be generated thus less overhead for the BW server resulting in the increase in performance
2) In the definition of destination for the concerned RFC in BW (SM59), the Technical Setting tab says the Load balancing option = No. We are planning to make it Yes
But we believe that though these changes will bring some increase in performance, this is not the root cause of the abnormal behavior of this chain as this chain runs successfully on every alternate day with approximately the same amount of load in it.
I was not able to attach the many screen shots or the info which I had gathered during my analysis. Please advice how do I attach these files
Best Regards,Hi,
Normally index creation or deletion can take long time in case your database statistics are not updated properly, so can check stat after your data loading is completed and index generation is done, Do creation of database statistics.
Then try to recheck ...
Regards,
Satya
Maybe you are looking for
-
My iPod displays black & white battery charge icon and sad iPod face. help!
I plugged my iPod into an older iMac; it froze and had to be restarted. I restarted it and started listening on shuffle. It would skip through all of my songs without me pressing any buttons. I restarted again and it worked fine. I came home and plug
-
Hi All, My scenario wants an automated process where the users can reset their own password. Do you know if the user password reset on the logon page is a automated process? Does the email with password go directly to the user or the email goes to th
-
My laptop was on sleep mode. I opened it and tried putting in my password, only for it to be rejected countless times. I then forcefully shut it down by pressing the start button for long. The battery is charged but I have been pressing the start but
-
My brother has a Mac Pro 2,1 Quad Core and OSX 10.5.8 Recently the DVD player/recorder will not play back, but does record. Is this a hardware or software problem?
-
Activating on a second computer
I've transferred my Elements 7 from a desktop to a new laptop, but I'm told it's activated on two other computers already. This is not so - how can I get this sorted out?