20160114physical reads direct path reads

简介: [20160114]physical reads和direct path reads.txt --上个星期在ITPUB论坛里遇到几个关于磁盘性能地下的问题. --主要链接如下: http://www.

[20160114]physical reads和direct path reads.txt

--上个星期在ITPUB论坛里遇到几个关于磁盘性能地下的问题.
--主要链接如下:
http://www.itpub.net/thread-2050157-1-1.html
http://www.itpub.net/thread-2050439-1-1.html
http://www.itpub.net/thread-2050601-1-1.html

--都是表现为磁盘IO相关的等待时间比较大.论坛讨论大部分认为是存储出现问题.
--而其中链接:http://www.itpub.net/thread-2050439-1-1.html
--因为我们旧系统使用的就是该公司的产品,他们的连接数比我们小,而应用出现这个严重的性能问题.
--log file sync单次8354毫秒.

--如果仔细检查可以发现大量索引没有建立,而且看AWR报表发现:

Segments by Physical Reads

    Total Physical Reads: 5,752,157
    Captured Segments account for 94.1% of Total

Owner        Tablespace Name    Object Name        Subobject Name   Obj. Type   Physical Reads        %Total
PHARMACY     TSP_PHARMACY       DRUG_DISPENSE_REC                   TABLE            4,233,164        73.59
OUTPBILL     TSP_OUTPBILL       INVOICE_INFO                        TABLE              763,679        13.28
OUTPBILL     TSP_OUTPBILL       OUTP_BILL_ITEMS                     TABLE              371,704         6.46
OUTPDOCT     TSP_OUTPADM        OUTP_PRESC                          TABLE               18,007         0.31
INPBILL      TSP_INPBILL        INP_BILL_DETAIL                     TABLE                8,609         0.15

Back to Segment Statistics
Back to Top

Segments by Direct Physical Reads

    Total Direct Physical Reads: 5,599,810
    Captured Segments account for 95.8% of Total

Owner        Tablespace Name    Object Name        Subobject Name   Obj. Type   Direct Reads        %Total
PHARMACY     TSP_PHARMACY       DRUG_DISPENSE_REC                   TABLE          4,231,626        75.57
OUTPBILL     TSP_OUTPBILL       INVOICE_INFO                        TABLE            763,584        13.64
OUTPBILL     TSP_OUTPBILL       OUTP_BILL_ITEMS                     TABLE            371,366        6.63

--上下对比问题就很清楚了.
单独拿DRUG_DISPENSE_REC来看:
Direct Physical Reads =4,231,626
Physical Reads = 4,233,164
-- 4233164-4231626=1538 ,真正的物理读仅仅1538.

两者基本相等.我认为Direct Physical Reads算作Physical Reads的一部分.还是测试看看.

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> @ &r/hide  _small_table_threshold
old  10:  and lower(a.ksppinm) like lower('%&1%')
new  10:  and lower(a.ksppinm) like lower('%_small_table_threshold%')

NAME                     DESCRIPTION                                          DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE
------------------------ ---------------------------------------------------- ------------- ------------- ------------
_small_table_threshold   lower threshold level of table size for direct reads TRUE          872           872


$ cat sess.sql
set verify off
column name format a40
SELECT b.NAME, a.statistic#, a.VALUE,a.sid
  FROM v$mystat a, v$statname b
WHERE lower(b.NAME) in ('consistent gets direct','physical reads direct','table scans (direct read)',
'cleanouts only - consistent read gets',
'session logical reads',
'physical reads',
'redo size'
) AND a.statistic# = b.statistic#  order by name ;

--直接拿sh.sales测试:

SCOTT@book> @ &r/sess

NAME                                     STATISTIC#      VALUE        SID
---------------------------------------- ---------- ---------- ----------
cleanouts only - consistent read gets           328          0        232
consistent gets direct                           92          0        232
physical reads                                   94          0        232
physical reads direct                            97          0        232
redo size                                       194        772        232
session logical reads                            14         46        232
table scans (direct read)                       413          0        232

7 rows selected.

SCOTT@book> select /*+full(a) */ count(*) from sh.sales a;
  COUNT(*)
----------
    918843

SCOTT@book> @ &r/sess
NAME                                     STATISTIC#      VALUE        SID
---------------------------------------- ---------- ---------- ----------
cleanouts only - consistent read gets           328          0        232
consistent gets direct                           92       1619        232
physical reads                                   94       1619        232
physical reads direct                            97       1619        232
redo size                                       194        772        232
session logical reads                            14       1681        232
table scans (direct read)                       413         16        232
7 rows selected.

--可以发现physical reads direct,physical reads 接近.说明physical reads direct是直接路径读的一部分.

3.看看awr报表:
SCOTT@book>  exec dbms_workload_repository.create_snapshot();

--执行 select /*+full(a) */ count(*) from sh.sales a; 多次..

SCOTT@book> exec dbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.

--检查awr报表:
Segments by Logical Reads                  DB/Inst: BOOK/book  Snaps: 836-837
-> Total Logical Reads:          89,525
-> Captured Segments account for   98.8% of Total

           Tablespace                      Subobject  Obj.       Logical       
Owner         Name    Object Name            Name     Type         Reads  %Total
---------- ---------- -------------------- ---------- ----- ------------ -------
SH         EXAMPLE    SALES                ES_Q4_2001 TABLE        5,712    6.38
SH         EXAMPLE    SALES                ES_Q1_1999 TABLE        5,152    5.75
SH         EXAMPLE    SALES                ES_Q3_1999 TABLE        5,152    5.75
SH         EXAMPLE    SALES                ES_Q3_2001 TABLE        5,152    5.75
SH         EXAMPLE    SALES                ES_Q1_2000 TABLE        5,056    5.65
                          ------------------------------------------------------

Segments by Physical Reads                  DB/Inst: BOOK/book  Snaps: 836-837
-> Total Physical Reads:          74,514
-> Captured Segments account for  100.0% of Total

           Tablespace                      Subobject  Obj.      Physical       
Owner         Name    Object Name            Name     Type         Reads  %Total
---------- ---------- -------------------- ---------- ----- ------------ -------
SH         EXAMPLE    SALES                ES_Q4_2001 TABLE        5,704    7.65
SH         EXAMPLE    SALES                ES_Q3_2001 TABLE        5,244    7.04
SH         EXAMPLE    SALES                ES_Q1_1999 TABLE        5,106    6.85
SH         EXAMPLE    SALES                ES_Q3_1999 TABLE        5,060    6.79
SH         EXAMPLE    SALES                ES_Q1_2000 TABLE        5,014    6.73
                          ------------------------------------------------------

Segments by Physical Read Requests          DB/Inst: BOOK/book  Snaps: 836-837
-> Total Physical Read Requests:             776
-> Captured Segments account for   97.4% of Total

           Tablespace                      Subobject  Obj.     Phys Read       
Owner         Name    Object Name            Name     Type      Requests  %Total
---------- ---------- -------------------- ---------- ----- ------------ -------
SH         EXAMPLE    SALES                ES_Q1_1998 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q1_1999 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q1_2000 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q1_2001 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q2_1998 TABLE           46    5.93
                          ------------------------------------------------------

Segments by UnOptimized Reads               DB/Inst: BOOK/book  Snaps: 836-837
-> Total UnOptimized Read Requests:             776
-> Captured Segments account for   97.4% of Total

           Tablespace                      Subobject  Obj.   UnOptimized       
Owner         Name    Object Name            Name     Type         Reads  %Total
---------- ---------- -------------------- ---------- ----- ------------ -------
SH         EXAMPLE    SALES                ES_Q1_1998 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q1_1999 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q1_2000 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q1_2001 TABLE           46    5.93
SH         EXAMPLE    SALES                ES_Q2_1998 TABLE           46    5.93
                          ------------------------------------------------------

Segments by Optimized Reads                 DB/Inst: BOOK/book  Snaps: 836-837

                  No data exists for this section of the report.
                          ------------------------------------------------------

Segments by Direct Physical Reads           DB/Inst: BOOK/book  Snaps: 836-837
-> Total Direct Physical Reads:          74,476
-> Captured Segments account for  100.0% of Total

           Tablespace                      Subobject  Obj.        Direct       
Owner         Name    Object Name            Name     Type         Reads  %Total
---------- ---------- -------------------- ---------- ----- ------------ -------
SH         EXAMPLE    SALES                ES_Q4_2001 TABLE        5,704    7.66
SH         EXAMPLE    SALES                ES_Q3_2001 TABLE        5,244    7.04
SH         EXAMPLE    SALES                ES_Q1_1999 TABLE        5,106    6.86
SH         EXAMPLE    SALES                ES_Q3_1999 TABLE        5,060    6.79
SH         EXAMPLE    SALES                ES_Q1_2000 TABLE        5,014    6.73
                          ------------------------------------------------------

--可以发现Direct Physical Reads算做Physical Reads的一部分,Physical Reads算作Logical Reads的一部分.

--而看
File IO Stats

    ordered by Tablespace, File

Tablespace Filename                          Reads  Av Rds/s  Av Rd(ms) Av Blks/Rd 1-bk Rds/s Av 1-bk Rd(ms) Writes Writes avg/s Buffer Waits Av Buf Wt(ms)
EXAMPLE    /mnt/ramdisk/book/example01.dbf   736          16  0.00      101.19             0                     0            0             0 0.00
SYSAUX     /mnt/ramdisk/book/sysaux01.dbf     30           1  0.00        1.00             1           0.00      3            0             0 0.00
SYSTEM     /mnt/ramdisk/book/system01.dbf     15           0  0.00        1.00             0           0.00      0            0             0 0.00


--我的测试次数不是太多,可以发现file Io  STAT 的读 仅仅 736 .Tablespace IO Stats也出现类似的情况,这样非常具有迷惑性,感觉
--读很少,实际上系统存在大量的直接路径读,如果仔细看IOStat by Function/Filetype summary就可以发现:

IOStat by Function summary                  DB/Inst: BOOK/book  Snaps: 836-837
-> 'Data' columns suffixed with M,G,T,P are in multiples of 1024
    other columns suffixed with K,M,G,T,P are in multiples of 1000
-> ordered by (Data Read + Write) desc

                Reads:   Reqs   Data    Writes:  Reqs   Data    Waits:    Avg 
Function Name   Data    per sec per sec Data    per sec per sec Count    Tm(ms)
--------------- ------- ------- ------- ------- ------- ------- ------- -------
Direct Reads       582M    16.0 12.638M      0M     0.0      0M     736     0.0
LGWR                 0M     0.0      0M      2M     0.6   .043M      56     0.0
Others               2M     3.3   .043M      0M     0.7      0M     183     0.0
Buffer Cache Re      0M     0.8      0M      0M     0.0      0M      37     0.0
Direct Writes        0M     0.0      0M      0M     0.1      0M       3     0.0
TOTAL:             584M    20.1 12.681M      2M     1.3   .043M    1015     0.0
                          ------------------------------------------------------
--再回过头看http://www.itpub.net/thread-2050439-1-1.html的awr报表,居然发现这个版本没有这部分内容.他使用的是11.1.0.7.0.
--我一直认为他的应用问题大于存储性能不好.

目录
相关文章
|
人工智能 JSON Java
【极速入门版】编程小白也能轻松上手Comate AI编程插件
【极速入门版】编程小白也能轻松上手Comate AI编程插件
340 0
|
数据可视化 数据挖掘 UED
Plotly交互式数据可视化
【10月更文挑战第12天】本文介绍了如何使用 Plotly 实现交互式数据可视化,涵盖从安装 Plotly 到数据准备、图表创建、添加交互功能、导出图表及自定义图表样式的全过程。通过具体示例,展示了如何创建和优化交互式折线图,提升数据分析的效率和趣味性。
643 60
|
敏捷开发 存储 监控
6款主流办公协同软件大比拼:哪款工具最适合企业协作?
在现代企业中,团队协作是高效运作的核心。本文分析了协同工作的常见难点,如沟通不畅、任务跟踪困难和工具孤立,并推荐了6款主流办公协同软件:板栗看板、Trello、Notion、Monday.com、Asana和Slack。每款软件都有其独特优势,适合不同类型和规模的团队。通过功能、易用性和应用场景的评测,帮助企业找到最适合的工具。
712 5
6款主流办公协同软件大比拼:哪款工具最适合企业协作?
|
存储 小程序 Java
微信通知
本文档介绍了通过企业微信API发送消息所需的前置条件及步骤,包括获取access_token和发送消息的具体Java代码示例。前置条件涉及企业微信与小程序的相关配置信息,如appId、secret等。示例代码展示了如何异步处理请求,并解析响应数据以获取用户列表,同时提供了处理医生编号的辅助方法。
291 0
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
289 0
|
算法 Python
【Python】Python 实现破零(ZF)和最小均方误差(MMSE)信道均衡
无线通信中用于减少信号失真和噪声影响的两种常见信道均衡技术:Zero Forcing (ZF) 和 Minimum Mean Square Error (MMSE),并给出了ZF均衡器的数学表达式及其实现方法。
615 0
|
弹性计算 网络安全 数据安全/隐私保护
阿里云服务器新手入门:注册账号、实名认证申请免费云服务器全流程
注册阿里云账号,选择注册方式如密码、扫码或手机号,并完成验证码验证。接着进行实名认证,提供必要个人信息或企业证件。然后,在控制台选择云服务器ECS,点击“免费试用”申请,配置实例并设置登录密码。创建后,通过远程连接工具如SSH登录,开始使用服务器进行软件安装、应用部署等操作。阿里云提供详细文档支持。别忘了点击链接以直接试用。
1200 0
|
JavaScript
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
411 0
|
机器学习/深度学习 存储 人工智能
基于人工智能的个性化推荐系统研究
基于人工智能的个性化推荐系统研究
924 0