Oracle 数据库中几个重要的动态性能视图
- v$session
- v$sql
- v$sql_plan
- v$sql_plan_statistics
- v$sql_workarea
- v$sql_plan_statistis_all
v$sql_plan
它提供与计划表基本上相同的信息。换句话说,它提供执行计划和由查询优化器提供的其他相关信息。几个用于标识与库缓存中的执行计划关联的游标的列,是这个视图与计划表之间唯一显著的差别。
v$sql_plan_statistics
为v$sql_plan视图中的每一个操作提供执行统计。例如消耗的时间和产生的行数。本质上讲,它提供执行计划的运行时行为。这时非常有用的信息,因为v$sql_plan视图只显示查询优化器在解析阶段做出的估算和决定。因为执行统计信息的采集可能会引发不可忽略的负载,默认情况下不会采集它们。要激活采集,必须将 statistics_level 初始化参数设置为 ALL,或者必须将 gather_plan_statistics 这个 hint 指定在SQL语句中。
v$sql_workarea
提供关于执行游标所需的内存工作区的信息。它给出运行时内存以及估算的高效执行操作需要的内存总量信息。
v$sql_plan_statistics_all
将v$sql_plan、v$sql_plan_statistics以及v$sql_workarea视图提供的信息通过一个单独的视图展现出来。通过它,可以避免手工连接多个视图。
库缓存中的游标通过两个列来标识:address和child_number。通过address列,可以标识父游标。通过两个列一起,可以标识子游标。更多的常见的用法是用sql_id列替代address列来标识游标。使用sql_id列的好处是它的值只依赖SQL语句本身。
(未完,待续)