Oracle 物理和逻辑IO计数
我希望能够在oracle中运行某种显示计划(类似于SYBASE),在每个查询或存储过程上显示以下内容:Oracle 物理和逻辑IO计数,oracle,optimization,Oracle,Optimization,我希望能够在oracle中运行某种显示计划(类似于SYBASE),在每个查询或存储过程上显示以下内容: 每个语句都使用了物理IO 每个语句都使用逻辑IO 每个语句上使用的索引 在sybase中,这对我来说非常简单。我有一个分析工具可以做到这一点,我花了我的大部分时间实际解决高IO项目 我被告知要做以下事情: set autotrace on statistics; EXPLAIN PLAN FOR SELECT * FROM SOMETABLE SELECT PLAN_TABLE_OUTPUT
set autotrace on statistics;
EXPLAIN PLAN FOR
SELECT * FROM SOMETABLE
SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY());
这很好,但什么是行?是物理IO还是逻辑IO?另外,计划哈希值是多少:16177?这是总数吗?我对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
查看底部的统计信息,consistent gets是逻辑I/O的度量。物理读取度量必要的物理读取数量。这还显示了查询计划,其中包括优化器对每个查询步骤将返回的行数的估计(即优化器正确估计
EMP
表的完整扫描将返回16行,包括160字节的数据) 如果您想要更详细的信息(并且可以访问跟踪文件),请查找TKPROF
请参阅:冒着给人一种无耻的感觉的风险,我写了几篇关于Oracle中的查询和代码基准测试的文章-我写了一篇关于使用Autotrace的文章,如何获得解释计划等。您如何查看统计数据?在我的执行过程中,我没有看到:将自动跟踪统计设置为on;解释从“SCGFAD”“证券”中选择*的计划;选择PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY())@Saro Khatchatourian—您可以在实际执行查询时看到统计信息。在生成查询计划时不会。