监控DB2活动之Visual Explain详细介绍
2007-12-06 13:45:15 来源:论坛整理 作者:
转载 点击:
为了分析解释信息,您需要了解的最重要的事情就是 timeron 的概念。对一个数据库执行任何 SQL 语句之前,必须首先准备 SQL 语句。
成,表示处理为指定查询选定的访问计划时所必需的不同组件。计划中的各组件都显示为一种称为节点 的图形对象。可存在两种类型的节点:
操作符(Operator)。操作符节点用于确定是否必须在数据上执行一项活动,或者通过表或索引生成的输出。
操作对象(Operand)。操作对象节点用于确定对其进行操作的实体(例如,表可以是一个表扫描操作符的操作对象)。
操作对象
典型情况下,操作对象节点用于确定表、索引和表队列(表队列用于使用了内部分区并行操作的情况下),它们在层次图中的符号分别是矩形(表)、菱形(索引)和平行四边形(表队列)。图 11 给出了表和索引操作对象的示例。
图 11. 表和索引操作对象

操作符
另一方面,操作符节点用于确定从插入操作到索引或表扫描的一切活动。操作符节点在层次图中的符号为椭圆形,表示数据的访问方法、表的连接方法,以及其他一些因素,例如是否要执行排序操作等。表 6 列出了访问计划层次图中较为常见的操作符。
表 6. 常见 Visual Explain 操作符
| 操作符 |
所执行的操作 |
| CMPEXP |
计算表达式。(仅用于调试模式。) |
| DELETE |
从表中删除行。 |
| EISCAN |
扫描用户定义的索引,产生一系列简化的行。 |
| FETCH |
使用指定的记录标识符从表中获取列。 |
| FILTER |
通过应用一个或多个谓词过滤数据。 |
| GENROW |
生成一个行表。 |
| GRPBY |
按指定列或函数的公共值组织行,并对集合函数求值。 |
| HSJOIN |
显示一个散列连接,其中一个或多个表在连接列上是混编的。 |
| INSERT |
向表中插入行。 |
| IXAND |
对两个或多个索引扫描所得到的行标识符(RID)进行 AND 运算。 |
| IXSCAN |
使用可选的启动/停止条件扫描表索引,产生有序的行流。 |
| MSJOIN |
显示合并连接,其中外部和内部表必须按连接谓词的顺序排列。 |
| NLJOIN |
显示嵌套循环连接,为外部表中的各行访问内部表一次。 |
| PIPE |
翻译行。(仅用于调试模式。) |
| RETURN |
将查询返回的数据显示给用户。 |
| RIDSCN |
扫描一个行标识符(RID)列表,该列表是从一个或多个索引中获得的。 |
| RPD |
远程计划的操作符。与 V8 中的 SHIP 操作符极为类似(之前版本中的 RQUERY 操作符),惟一的不同在于它不包含 SQL 或 XQuery 语句。 |
| SHIP |
从远程数据库源中检索数据。在联合系统中使用。 |
| SORT |
按特定类的顺序排序行,可以选择消除重复条目。 |
| TBSCAN |
通过直接从数据页中读取所有数据而检索行。 |
| TEMP |
将数据存储在临时表中以便读回(很可能要读回多次)。 |
| TQUEUE |
在数据库代理之间传输表数据。 |
| UNION |
串联来自多个表的行流。 |
| UNIQUE |
消除特定列值重复的行。 |
| UPDATE |
更新表中的行。 |
| XISCAN |
扫描 XML 表的索引。 |
| XSCAN |
在一个 XML 文档节点子树中导航。 |
| XANDOR |
允许为多个 XML 索引应用 ANDed 和 ORed 谓词。 |
图 12 中展示