M.M*_*shi 3 oracle plsqldeveloper sql-tuning
这是一个简单的查询: select * from customers
当我在PL/SQL Developer中编写此查询并按F5时,我会看到解释计划,但我不知道成本,基数和字节代表什么.
Oracle Optimizer是基于成本的优化器.为SQL语句选择的执行计划只是优化程序考虑的许多替代执行计划之一.优化程序选择成本最低的执行计划,其中cost表示该计划的估计资源使用情况.成本越低,预计计划的效率就越高.优化程序的成本模型考虑了查询将使用的IO,CPU和网络资源.图8:在执行计划的第五列中找到成本整个计划的成本(在第0行上指示)和每个单独的操作都显示在执行计划中.但是,它不是可以调整或更改的东西.成本是内部单位,仅显示以进行计划比较.
您还可以查看" 数据库性能调优指南",其中说明:
此列的值没有任何特定的度量单位; 它只是用于比较执行计划成本的加权值.此列的值是CPU_COST和IO_COST列的函数.
所以 - COST是一个无量纲值,它是CPU和IO成本的函数.
有关计划表列的说明,请参见第12.10节。
https://docs.oracle.com/cd/E11882_01/server.112/e41573/ex_plan.htm#PFGRF009
成本是优化器估计通过特定计划运行查询的工作量。优化器通常更喜欢成本较低的计划。
成本由几个不同的因素决定,但是表格统计信息是其中最大的一项。
基数是优化程序猜测将为计划步骤处理的行数。如果统计数据过旧,丢失或不完整-这可能是完全错误的。您想查找优化器在哪里看到5行(基数),但实际上有50,000行。
字节与基数是相同的概念,但是从纯粹的数据处理角度来看,表中的行是字节。
这是一个非常深刻的主题,需要积极学习和经验。我相信许多人都可以为旅行的地方献计献策。我个人喜欢Maria的博客。她是优化器的前产品经理。
| 归档时间: |
|
| 查看次数: |
10554 次 |
| 最近记录: |