Вы находитесь на странице: 1из 5

Database Response Time

Within the scope of the RDBMS, Response Time in it’s simplest form consists of
Service Time + Wait Time. Service Time equates to time the request is actively
being processed on the CPU, while Wait Time encompasses everything else.

Top Five Wait Events

6.7
3.55

51.25

38.82

db file sequential read 51.25


CPU time 38.82
Async disk IO 6.71
db file scattered read 3.55
buffer busy waits 1.67

The chart depicts a breakdown of response time from March 1 8:00 AM – March
1 6:00 PM. During this period, an average of only 38% of response time was
CPU related. The remaining 62% of response time was spent waiting on various
resources. The remaining predominate wait events were db file sequential read,
db file scattered read, buffer busy waits, and async disk IO.

The db file sequential read event signifies a wait for an I/O read request to
complete. A sequential read is usually a singleblock read that is typically used
when reading indexes, although it is possible to see sequential reads for more
than one block. This call differs from "db file scattered read" in that a sequential
read reads data into contiguous memory (while a scattered read reads multiple
blocks and scatters them into different buffers in the SGA).
Resource Intensive SQL
Any effort of improving performance must involve reviewing the actual SQL code
that is submitted in transactions to determine if it can be optimized. The largest
performance improvements usually come from tuning the actual code, not from
adjusting database parameters. It is important to periodically extract the most
resource intensive SQL and examine it for improvement opportunities.

Statement
Identifier Statement Disk
Reads
A Program = Dcrtsora 14.5%

select /*+ INDEX(TRN_DLR UK_TRN_DLR) */ TRN_DLR_KEY ,OPID_CODE ,TRAN_CODE


,SOURCE ,DIST ,RTE ,APPLIED_FLAG ,DAYS
,NVL(TO_CHAR(THRU_DATE,'YYYYMMDD'),:b1) ,SUB_AMT ,DIST_AMT ,PRMO_AMT
,BLNC_AMT ,NVL(TO_CHAR(BILLED_DATE,'YYYYMMDD'),:b1) ,PMT_OPTION
,BATCH_NBR ,DOLLAR_TYPE ,PRMO_TYPE
,NVL(TO_CHAR(REF_DATE,'YYYYMMDD'),:b1) ,TIP_AMT
,NVL(TO_CHAR(EXPR_DATE,'YYYYMMDD'),:b1) ,WO_DLY_DAYS ,WO_SAT_DAYS
,WO_SUN_DAYS from TRN_DLR where (((DELETE_FLAG<>'D' and OFFLINE_FLAG<>'S')
and TRN_DLR_KEY>=:b2) and TRN_DLR_KEY<=:b3) order by TRN_DLR_KEY asc

B Progam = Dcrtsora 3.1%

select /*+ INDEX(TRN_MEM UK_TRN_MEM) */ TRN_MEM_KEY ,OPID_CODE ,TYPE ,CNT


,CODE ,FLAG ,RPT_FLAG ,MSG ,CLASS from TRN_MEM where (((DELETE_FLAG<>'D'
and OFFLINE_FLAG<>'S') and TRN_MEM_KEY>=:b1) and TRN_MEM_KEY<=:b2) order by
TRN_MEM_KEY asc

C Program = PL/SQL Developer 2.5%

select sub.acct_nbr, sub.name, sub.home_phone, sub.stat_flag,


atf.ent_date_time, atf.opid from atf, sub where atf.sub_rrn = sub.rrn /*and
atf.delete_flag = sub.delete_flag*/ AND atf.opid = 'EAH' AND ("ATF"."ENT_DATE_TIME"
>= TO_DATE('01-03-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS') AND
"ATF"."ENT_DATE_TIME" < TO_DATE('02-03-2006 00:00:01', 'DD-MM-YYYY
HH24:MI:SS')) group by sub.acct_nbr, sub.name, sub.home_phone, sub.stat_flag,
atf.ent_date_time, atf.opid

D Program = Datalink_viewer 2.4%

SELECT "SUB"."ACCT_NBR", "TRN_MEM"."EFF_DATE", "ATF_MEM"."TYPE",


"SUB"."USER_AREA", "SUB"."STAT_FLAG", "TRN_MEM"."CODE", "TRN_MEM"."MSG" FROM
"DISCUS"."SUB" "SUB", "DISCUS"."ATF" "ATF_MEM", "DISCUS"."TRN_MEM" "TRN_MEM"
WHERE ("SUB"."RRN"="ATF_MEM"."SUB_RRN") AND
("ATF_MEM"."ATF_KEY"="TRN_MEM"."TRN_MEM_KEY") AND ("SUB"."STAT_FLAG"='C' OR
"SUB"."STAT_FLAG"='E' OR "SUB"."STAT_FLAG"='F' OR "SUB"."STAT_FLAG"='I' OR
"SUB"."STAT_FLAG"='V' OR "SUB"."STAT_FLAG"='W') AND "ATF_MEM"."TYPE"='5' AND
("TRN_MEM"."EFF_DATE">=TO_DATE ('21-02-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS')
AND "TRN_MEM"."EFF_DATE"<TO_DATE ('28-02-2006 00:00:00', 'DD-MM-YYYY
HH24:MI:SS'))

E Program = SQL Plus 2.3%


BEGIN rpt_data_daily_purge; END;

Others 75.20%

Statement
Identifier Statement Buffer Gets

A Program = Dcrtsora 18.6%

select /*+ INDEX(TRN_MEM UK_TRN_MEM) */ TYPE ,CNT ,CODE ,FLAG ,RPT_FLAG


,MSG ,CLASS into :b1,:b2,:b3,:b4,:b5,:b6,:b7 from TRN_MEM where TRN_MEM_KEY=:b8

B Progam = Dcrtsora 9.5%

select /*+ INDEX(ATF UK_ATF_ATF_KEY) */ rowid ,ATF_KEY ,OPID ,TYPE


,DELETE_FLAG from ATF where ATF_KEY>=:b1 order by ATF_KEY asc

C Progam = Dcrtsora_GUI 9.24%

select /*+ INDEX_DESC(ATF UK_ATF_ATF_KEY) */ rowid ,ATF_KEY ,OPID ,TYPE


,DELETE_FLAG from ATF where ATF_KEY<=:b1 order by ATF_KEY desc

D Program = Dcrtsora 5.2%

select /*+ INDEX(TRN_DLR UK_TRN_DLR) */ TRN_DLR_KEY ,OPID_CODE ,TRAN_CODE


,SOURCE ,DIST ,RTE ,APPLIED_FLAG ,DAYS
,NVL(TO_CHAR(THRU_DATE,'YYYYMMDD'),:b1) ,SUB_AMT ,DIST_AMT ,PRMO_AMT
,BLNC_AMT ,NVL(TO_CHAR(BILLED_DATE,'YYYYMMDD'),:b1) ,PMT_OPTION
,BATCH_NBR ,DOLLAR_TYPE ,PRMO_TYPE
,NVL(TO_CHAR(REF_DATE,'YYYYMMDD'),:b1) ,TIP_AMT
,NVL(TO_CHAR(EXPR_DATE,'YYYYMMDD'),:b1) ,WO_DLY_DAYS ,WO_SAT_DAYS
,WO_SUN_DAYS from TRN_DLR where (((DELETE_FLAG<>'D' and OFFLINE_FLAG<>'S')
and TRN_DLR_KEY>=:b2) and TRN_DLR_KEY<=:b3) order by TRN_DLR_KEY asc

E Program = Datalink_viewer 3.34%

SELECT "HST"."MON_DATE", "HST"."DRAW_QTY_1", "HST"."RTRN_QTY_1",


"HST"."DRAW_QTY_2", "HST"."RTRN_QTY_2", "HST"."DRAW_QTY_3",
"HST"."RTRN_QTY_3", "HST"."DRAW_QTY_4", "HST"."RTRN_QTY_4",
"HST"."DRAW_QTY_5", "HST"."RTRN_QTY_5", "HST"."DRAW_QTY_6",
"HST"."RTRN_QTY_6", "HST"."DRAW_QTY_7", "HST"."RTRN_QTY_7", "HST"."CATG_CODE",
"VW_RPT_REVENUE4"."DRAW_RATE", "VW_RPT_REVENUE4"."ENT_NBR",
"VW_RPT_REVENUE4"."ABC_CODE", "VW_RPT_REVENUE4"."OTYP_CODE",
"VW_RPT_REVENUE4"."AREA_CODE", "HST"."OUT_NBR", "VW_RPT_REVENUE4"."DIST",
"VW_RPT_REVENUE4"."RTE", "HST"."SCAT_CODE", "VW_RPT_REVENUE4"."RETL_RATE",
"VW_RPT_REVENUE4"."RATE_SCAT_CODE", "VW_RPT_REVENUE4"."RATE_DATE",
"HST"."EDTN_CODE" FROM "DISCUS"."HST" "HST" INNER JOIN
"COMMON"."VW_RPT_REVENUE4" "VW_RPT_REVENUE4" ON
("HST"."OUT_NBR"="VW_RPT_REVENUE4"."OUT_NBR") AND
("HST"."EDTN_CODE"="VW_RPT_REVENUE4"."EDTN_CODE") WHERE
("HST"."MON_DATE">=TO_DATE ('25-01-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS') AND
"HST"."MON_DATE"<TO_DATE ('08-03-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS

Others 54.12%

Statement
Identifier Statement BuffGet/Execuation

A Program = Dcrtsora 110 Million

select /*+ INDEX(TRN_DLR UK_TRN_DLR) */ TRN_DLR_KEY ,OPID_CODE ,TRAN_CODE


,SOURCE ,DIST ,RTE ,APPLIED_FLAG ,DAYS
,NVL(TO_CHAR(THRU_DATE,'YYYYMMDD'),:b1) ,SUB_AMT ,DIST_AMT ,PRMO_AMT
,BLNC_AMT ,NVL(TO_CHAR(BILLED_DATE,'YYYYMMDD'),:b1) ,PMT_OPTION
,BATCH_NBR ,DOLLAR_TYPE ,PRMO_TYPE
,NVL(TO_CHAR(REF_DATE,'YYYYMMDD'),:b1) ,TIP_AMT
,NVL(TO_CHAR(EXPR_DATE,'YYYYMMDD'),:b1) ,WO_DLY_DAYS ,WO_SAT_DAYS
,WO_SUN_DAYS from TRN_DLR where (((DELETE_FLAG<>'D' and OFFLINE_FLAG<>'S')
and TRN_DLR_KEY>=:b2) and TRN_DLR_KEY<=:b3) order by TRN_DLR_KEY asc

B Progam = Datalink_viewer 33 Million

SELECT "HST"."MON_DATE", "HST"."DRAW_QTY_1", "HST"."RTRN_QTY_1",


"HST"."DRAW_QTY_2", "HST"."RTRN_QTY_2", "HST"."DRAW_QTY_3",
"HST"."RTRN_QTY_3", "HST"."DRAW_QTY_4", "HST"."RTRN_QTY_4",
"HST"."DRAW_QTY_5", "HST"."RTRN_QTY_5", "HST"."DRAW_QTY_6",
"HST"."RTRN_QTY_6", "HST"."DRAW_QTY_7", "HST"."RTRN_QTY_7", "HST"."CATG_CODE",
"VW_RPT_REVENUE4"."DRAW_RATE", "VW_RPT_REVENUE4"."ENT_NBR",
"VW_RPT_REVENUE4"."ABC_CODE", "VW_RPT_REVENUE4"."OTYP_CODE",
"VW_RPT_REVENUE4"."AREA_CODE", "HST"."OUT_NBR", "VW_RPT_REVENUE4"."DIST",
"VW_RPT_REVENUE4"."RTE", "HST"."SCAT_CODE", "VW_RPT_REVENUE4"."RETL_RATE",
"VW_RPT_REVENUE4"."RATE_SCAT_CODE", "VW_RPT_REVENUE4"."RATE_DATE",
"HST"."EDTN_CODE" FROM "DISCUS"."HST" "HST" INNER JOIN
"COMMON"."VW_RPT_REVENUE4" "VW_RPT_REVENUE4" ON
("HST"."OUT_NBR"="VW_RPT_REVENUE4"."OUT_NBR") AND
("HST"."EDTN_CODE"="VW_RPT_REVENUE4"."EDTN_CODE") WHERE
("HST"."MON_DATE">=TO_DATE ('25-01-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS') AND
"HST"."MON_DATE"<TO_DATE ('08-03-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS

C Program = PL/SQL Developer 27 Million

select sub.acct_nbr, sub.name, sub.home_phone, sub.stat_flag,


atf.ent_date_time, atf.opid from atf, sub where atf.sub_rrn = sub.rrn /*and
atf.delete_flag = sub.delete_flag*/ AND atf.opid = 'EAH' AND ("ATF"."ENT_DATE_TIME"
>= TO_DATE('01-03-2006 00:00:00', 'DD-MM-YYYY HH24:MI:SS') AND
"ATF"."ENT_DATE_TIME" < TO_DATE('02-03-2006 00:00:01', 'DD-MM-YYYY
HH24:MI:SS')) group by sub.acct_nbr, sub.name, sub.home_phone, sub.stat_flag,
atf.ent_date_time, atf.opid
D Program = Dcrtsora 24 Million

select /*+ INDEX(TRN_MEM UK_TRN_MEM) */ TRN_MEM_KEY ,OPID_CODE ,TYPE ,CNT


,CODE ,FLAG ,RPT_FLAG ,MSG ,CLASS from TRN_MEM where (((DELETE_FLAG<>'D'
and OFFLINE_FLAG<>'S') and TRN_MEM_KEY>=:b1) and TRN_MEM_KEY<=:b2) order by
TRN_MEM_KEY asc

E Program = Dcrtsor 12 Million

select /*+ INDEX(TRN_BIL UK_TRN_BIL) */ TRN_BIL_KEY ,OPID_CODE ,NBR ,INST


,PREV_PRMO_FLAG ,NVL(TO_CHAR(THRU_DATE,'YYYYMMDD'),:b1) ,AMT_1
,PRMO_AMT_1 ,PRMO_CODE1_1 ,PRMO_CODE2_1 ,AMT_2 ,PRMO_AMT_2
,PRMO_CODE1_2 ,PRMO_CODE2_2 ,AMT_3 ,PRMO_AMT_3 ,PRMO_CODE1_3
,PRMO_CODE2_3 ,AMT_4 ,PRMO_AMT_4 ,PRMO_CODE1_4 ,PRMO_CODE2_4 ,TAG
,OPTION_NBR ,NVL(TO_CHAR(THRU_DATE_O,'YYYYMMDD'),:b1) from TRN_BIL where
(((DELETE_FLAG<>'D' and OFFLINE_FLAG<>'S') and TRN_BIL_KEY>=:b2) and
TRN_BIL_KEY<=:b3) order by TRN_BIL_KEY asc

Вам также может понравиться