物理读与逻辑读

1、物理读即是把数据从磁盘读入到buffer catch的过程。

    通常情况下是,如果需要数据的时候发现不存在于buffer catch当中,即oracle就会执行物理读。
 例子如下:
C:/Documents and Settings/Administrator>sqlplus jenny/jenny
SQL> set autotrace traceonly;
SQL> select * from t_test1;
----------------------------------------------------------
Plan hash value: 1883417357
----------------------------------------------------------
0  recursive calls
0  db block gets
11  consistent gets
3  physical reads --发生了3次物理读写
0  redo size
10632  bytes sent via SQL*Net to client
451  bytes received via SQL*Net from client
8  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
97  rows processed

 SQL> select * from t_test1;
 ----------------------------------------------------------
 Plan hash value: 1883417357
----------------------------------------------------------
0  recursive calls
0  db block gets
11  consistent gets
0  physical reads --这里没有发生物理读取,因为这时数据已存在buffer catche中
0  redo size
10632  bytes sent via SQL*Net to client
451  bytes received via SQL*Net from client
8  SQL*Net roundtrips to/from client
0  sorts (memory)
0  sorts (disk)
97  row
### 物理逻辑在数据库性能分析中的关键区别 在数据库性能分析中,**物理**和**逻辑**是两个核心概念,它们在数据访问方式、性能影响和测试意义方面存在显著差异。 **物理(Physical Read)**是指从磁盘存储中将数据页加载到数据库缓冲区(Buffer Cache)的过程。由于磁盘 I/O 的速度远低于内存访问速度,物理通常会显著影响 SQL 查询的执行时间。因此,物理的次数和效率是衡量数据库性能的重要指标之一。在性能测试中,为了模拟数据库在高负载或冷启动时的表现,通常会通过清空缓冲区缓存(如执行 `ALTER SYSTEM FLUSH BUFFER_CACHE;`)来强制触发物理,从而获得更真实的性能数据[^4]。 **逻辑(Logical Read)**则是指数据库直接从缓冲区缓存中取数据页的过程。逻辑不涉及磁盘 I/O,仅在内存中完成,因此其速度远高于物理逻辑的次数反映了 SQL 查询访问数据的频率,是评估查询效率的重要参考。在性能分析中,逻辑通常用于衡量 SQL 语句本身的效率,而不受底层存储 I/O 的干扰[^4]。 从性能分析的角度来看,物理更关注数据库的**存储性能和 I/O 能力**,而逻辑更关注 SQL 语句的**执行效率和数据访问模式**。例如,一个 SQL 语句如果产生了大量的逻辑,可能意味着其执行计划不够优化,或者缺少合适的索引;而频繁的物理则可能表明缓冲区缓存不足,或者数据访问模式不适合内存缓存。 在实际的数据库性能调优中,通常会结合逻辑物理的指标进行综合分析。例如,在 SQL Performance Analyzer(SPA)中,通过刷新缓冲区缓存来强制物理,可以模拟数据库在冷启动或高负载下的表现;而在缓冲区缓存存在数据的情况下,主要进行逻辑,可以评估 SQL 语句在理想运行环境中的性能表现[^2]。 ### 性能分析中的典型应用场景 - **评估 SQL 语句效率**:通过比较逻辑的次数,可以判断 SQL 是否访问了过多的数据页,进而优化查询计划或索引设计。 - **测试系统 I/O 能力**:物理的响应时间可以反映磁盘或存储系统的性能瓶颈。 - **模拟真实运行环境**:在性能测试中,通过清空缓冲区缓存并触发物理,可以模拟数据库在高并发或冷启动时的表现。 - **优化缓存配置**:分析物理逻辑的比例,有助于调整缓冲区缓存大小,提高数据库整体性能。 ```sql -- 刷新缓冲区缓存以触发物理 ALTER SYSTEM FLUSH BUFFER_CACHE; ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值