gpt4 book ai didi

oracle - 物理和逻辑 IO 计数

转载 作者:行者123 更新时间:2023-12-03 17:08:12 28 4
gpt4 key购买 nike

我希望能够在 oracle 中运行某种显示计划(类似于 SYBASE),它将在每个查询或存储过程中显示以下内容:

  1. 每条语句都使用了物理 IO。
  2. 在每个语句中使用逻辑 IO。
  3. 每条语句中使用的索引。

这对我来说在sybase中很简单。我有一个分析器工具可以执行此操作,我大部分时间都在实际解决高 IO 项目。

我被告知要做以下事情:

set autotrace on statistics;
EXPLAIN PLAN FOR
SELECT * FROM SOMETABLE
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());

这很好,但什么是 ROWS?是物理IO还是逻辑IO?另外,计划哈希值是多少:1611616177?那是总IO吗?我对 Oracle 比较陌生,有很多问题需要调查。

最佳答案

在 SQL*Plus 中,你可以做类似的事情

SQL> set autotrace on;
SQL> select empno, ename from emp;

EMPNO ENAME
---------- ----------
7623 PAV
7369 smith
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER

EMPNO ENAME
---------- ----------
7876 ADAMS
7900 SM0
7902 FORD
7934 MILLER
1234 BAR

16 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 16 | 160 | 3 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| EMP | 16 | 160 | 3 (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
7 consistent gets
0 physical reads
0 redo size
997 bytes sent via SQL*Net to client
535 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
16 rows processed

查看底部的统计数据,一致性获取是逻辑 I/O 的度量。物理读取测量必要的物理读取次数。这也显示了查询计划,其中包括优化器对查询的每个步骤将返回的行数的估计(即优化器正确估计 EMP 表的完整扫描将返回包含 160 字节数据的 16 行)。

关于oracle - 物理和逻辑 IO 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com