SQL*Net more data to client 等待事件造成的性能问题

客户在升级程序时死机.原因是因为

select  *  from  application_versions

是查询这个语句时死机,因为在 application_versions表中存储了几十个更新程序的文件是以blob类型来存储的,当客户登录系统时会检查更新并下载这些程序文件.

下面是执行升级时所执行语句的跟踪信息

TKPROF: Release 11.2.0.3.0 - Development on Thu Oct 11 11:56:47 2012

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Trace file: /database/diag/rdbms/xxdyb/xxdyb1/trace/xxdyb1_ora_802824_Jy_Trace_20121011.trc
Sort options: default

********************************************************************************
count    = number of times OCI procedure was executed
cpu      = cpu time in seconds executing
elapsed  = elapsed time in seconds executing
disk     = number of physical reads of buffers from disk
query    = number of buffers gotten for consistent read
current  = number of buffers gotten in current mode (usually for update)
rows     = number of rows processed by the fetch or execute call
********************************************************************************

SQL ID: cf06fwacdmgfk Plan Hash: 1546270724

select 'x'
from
 dual


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1      0.00       0.00          0          0          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3      0.00       0.00          0          0          0           1

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 85  (INSUR_TEST)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  FAST DUAL  (cr=0 pr=0 pw=0 time=3 us cost=2 size=0 card=1)


Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      1   FAST DUAL


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                       2        0.00          0.00
  SQL*Net message from client                     2        0.01          0.01
********************************************************************************

SQL ID: fdjxawa50ppb3 Plan Hash: 2249315794

select *
from
 application_version


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch      100      0.52    1137.37          0      18010          1          99
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total      102      0.52    1137.37          0      18010          1          99

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 85  (INSUR_TEST)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
        99         99         99  TABLE ACCESS FULL APPLICATION_VERSION (cr=9409 pr=0 pw=0 time=710 us cost=2495 size=4512 card=96)


Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
     99   TABLE ACCESS   MODE: ANALYZED (FULL) OF 'APPLICATION_VERSION'
              (TABLE)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                     101        0.00          0.00
  SQL*Net message from client                   101       10.60        184.38
  SQL*Net more data to client                 34094       10.73       1136.87
********************************************************************************

但在通过应用程序程序上传这个程序文件并保存在application_versions表中是速度很快.
SQL*Net more data to client 这个等待事件是指示数据库在不断地发送数据到客户端时的网络问题.
后经地检查发送是华为交换机的问题,但上传更新程序到数据库中网络没有问题,但是下载时网络出问题.

发表评论

电子邮件地址不会被公开。