ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:22.85KB ,
资源ID:5418307      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5418307.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用说明.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

使用说明.docx

1、使用说明Db2expln使用说明1.语法图-db2expln-+-+-| -| connection-options |-|-+-+-+-+-| -| output-options |- -| package-options |-|-+-+-+-+-| -| dynamic-options |- -| explain-options |-|-+-+-|-+-+-| - -version-version-identifier-|-+-+-+-+-| - -escape-escape-character- - -noupper-|-+-+-| - -section-section-number-|

2、dynamic-options:|-+-+-| - -statement-sql-statement-|-+-+-| - -stmt|-+-+-+-+-| - -terminator-termination-character- - -noenv-|explain-options:|-+-+-+-+-| - -graph- - -opids-1.1常用命令行分析程序包db2expln -d 数据库名 -i -g -c 模式名-p程序包 -s 0 -t db2expln -d 数据库名 -i -g -c 模式名-p程序包 -s 0 -o文件名 第一条命令行讲执行方案显示在屏幕上,第二条语句将方案

3、输出到文件中分析sql 语句 db2expln -d 数据库名 -i -g -q sql语句 -t db2expln -d 数据库名 -i -g -q sql语句 -o 文件名 输出简单说明在该输出中,每个程序包的说明信息显示在下列两个部分: 程序包信息,如绑定日期和相关的绑定选项 后跟要说明的 SQL 语句的节信息,例如,节号。节信息之下,显示为 SQL 语句选择的存取方案的说明输出。 一个存取方案或节的步骤以数据库管理器执行它们的顺序显示。每个主要步骤显示为一个向左对齐的标题,有关该步骤的信息以缩进形式显示在该标题下。缩进条出现在该存取方案的说明输出的左页边距中。这些条也标记操作的作用域。

4、在返回到缩进的先前级别之前,在同一操作中处理更低级别的缩进(更远离右边)的操作。 选择的存取方案是基于输出中显示的原始 SQL 语句的增强版本。例如,原始语句可能导致激活触发器和约束。另外,SQL 编译器的查询重写组件可以将SQL 语句重新编写为一种等效但更有效的格式。当优化器确定满足该语句的最有效的方案时,会在优化器使用的信息中包括所有这些因素。因此,在说明输出中显示的存取方案可能与对原始 SQL 语句期望的存取方案完全不同。SQL 说明设施(包括说明表、SET CURRENT EXPLAIN 方式和Visual Explain)显示用于优化的实际 SQL 语句,其格式为 SQL 风格的语句

5、,它是通过逆向转换查询的内部表示而创建的。2.常用显示信息描述2.1表存取信息1.三种类型的常规表: o 存取表名: Access Table Name = schema.name ID = ts,n其中: schema.name 是正在存取的表的标准名称 ID 是该表的 SYSCAT.TABLES 目录中对应的 TABLESPACEID 和 TABLEID o 存取层次结构表名: Access Hierarchy Table Name = schema.name ID = ts,n 其中: schema.name 是正在存取的表的标准名称 ID 是该表的 SYSCAT.TABLES 目录中对

6、应的 TABLESPACEID 和 TABLEID o 存取具体查询表名称: Access Materialized Query Table Name = schema.name ID = ts,n 其中: schema.name 是正在存取的表的标准名称 ID 是该表的 SYSCAT.TABLES 目录中对应的 TABLESPACEID 和 TABLEID 1. 两种类型的临时表: o 存取临时表标识: Access Temp Table ID = tn 其中: ID 是 db2expln 指定的对应标识 o 存取已声明全局临时表标识: Access Global Temp Table ID

7、 = ts,tn 其中: ID 是该表(ts)的 SYSCAT.TABLES 目录中对应的 TABLESPACEID 以及由 db2expln(tn)指定的对应标识 在表存取语句之后,将提供附加语句以进一步描述该存取。这些语句以缩进形式显示在表存取语句之下。可能的语句有: 列数 块存取 并行扫描 扫描伪指令 行存取方法 锁定意向 谓词 其它语句 2. 列数 以下语句指示该表的每一行中所用的列数: #Columns = n 3. 块存取 以下语句指示表定义了一个或多个维块索引: Clustered by Dimension for Block Index Access如果未显示此文本,则未使用

8、DIMENSION 子句创建该表。 4. 并行扫描 以下语句指示数据库管理器将使用几个子代理程序来并行读取该表: Parallel Scan 如果未显示此文本,则该表只能由一个代理程序(或子代理程序)读取。 5. 扫描方向 以下语句指示数据库管理器将按倒序读取行: Scan Direction = Reverse 如果未显示此文本,则扫描方向为正向,这是缺省值。 6. 行存取方法 将显示下列语句之一,指示如何存取表中的限定行: 关系扫描语句指示按顺序扫描该表,以查找限定行。 o 以下语句指示将不执行数据的预取: Relation Scan| Prefetch: None o 以下语句指示优化器

9、已预先确定了将预取的页数: Relation Scan | Prefetch: n Pages o 以下语句指示应该预取数据: Relation Scan | Prefetch: Eligible o 以下语句指示正在通过索引标识和存取限定行: Index Scan: Name = schema.name ID = xx | Index type | Index Columns: 其中: schema.name 是正在扫描的索引的标准名称 ID 是 SYSCAT.INDEXES 目录视图中的对应 IID 列。 索引类型是下列其中一项: Regular Index (Not Clustered)

10、Regular Index (Clustered) Dimension Block Index Composite Dimension Block Index 对于索引中的每一列,都有一行跟在后面。将以下列一种形式列示索引中的每一列: n: column_name (Ascending) n: column_name (Descending) n: column_name (Include Column) 提供以下语句,以说明索引扫描的类型: 通过以下项显示索引的范围定界谓词: #Key Columns = n| Start Key: xxxxx| Stop Key: xxxxx 其中 xxx

11、xx 是下列其中一个: 索引开始 索引结束 包括的值:或排除的值: 将会在该索引扫描中包括内含的键值。不会在扫描中包括排除的键值。下列其中一行将对键的每一部分给出该键的值: n: string n: nnn n: yyyy-mm-dd n: hh:mm:ss n: yyyy-mm-dd hh:mm:ss.uuuuuu n: NULL n: ? 如果出现文字串,则仅显示前面 20 个字符。如果该字符串长度大于 20 个字符,则在该字符串的最后显示 .。一些键只有在执行该部分之后才能确定。因此会显示 ? 作为其值。 纯索引存取 如果可以从索引键获得所有需要的列,将出现此语句,且不会存取任何表数据。

12、 以下语句指示将不执行索引页的预取: Index Prefetch: None 以下语句指示应该预取索引页: Index Prefetch: Eligible 以下语句指示将不执行数据页的预取: Data Prefetch: None 以下语句指示应该预取数据页: Data Prefetch: Eligible 如果存在可以传送至“索引管理器”以帮助限定索引条目的谓词,则以下语句用于显示谓词数: Sargable Index Predicate(s) | #Predicates = n o 如果正在通过使用在存取方案中先前准备的行标识(RID)来存取限定行,将用下列语句指示它: Fetch D

13、irect Using Row IDs 如果表具有为它定义的一个或多个块索引,则块或行标识都可以访问行。这由以下指示: Fetch Direct Using Block or Row IOs 7. 锁定意向 对于每个表存取,都会用以下语句显示将在表和行级别获取的锁定类型: Lock Intents | Table: xxxx | Row : xxxx 表锁定的可能值有: 互斥 意向互斥 无任何意向 意向共享 共享 共享意向互斥 超互斥 更新 行锁定的可能的值有: 互斥 下一键互斥(不在 db2expln 输出中显示) 无 共享 下一键共享 更新 下一键弱互斥 弱互斥 8. 谓词 有两个语句,它

14、们提供有关在存取方案中使用的谓词的信息: a.以下语句指示将对从分块索引中检索的每个数据块求出的谓词数。 Block Predicates(s) | #Predicates = nb.以下语句指示当正在存取数据时将求出的谓词数。谓词的计数不包括下推操作,例如,聚集或排序。 Sargable Predicate(s)| #Predicates = n c.以下语句指示一旦返回数据,将求出的谓词数: Residual Predicate(s) | #Predicates = n 在上述语句中显示的谓词数也许未能反映在 SQL 语句中提供的谓词数,因为谓词可以: 在同一个查询中应用多次 在查询优化过

15、程中,通过添加隐式谓词来变换和扩展 在查询优化过程中,被变换和压缩成更少的谓词。 9. 其它表语句 以下语句指示将只存取一行: Single Record 当此表访问所使用的隔离级别与该语句所用的不同时,就会出现以下语句: | | Isolation Level: xxxx 由于许多原因,可能使用不同的隔离级别,包括:o 一个程序包是用“可重复读取”绑定的,这影响了引用完整性约束;为检查引用完整性约束而对父表进行的存取会被降级为“游标稳定性”隔离级别,以避免对此表挂起不必要的锁定。o 用“未落实的读”绑定的程序包发出 DELETE 或 UPDATE 语句;用于实际删除的表存取会被升级为“游标稳

16、定性”。 如下语句指示如果有足够的排序堆内存可用,从临时表读取的部分或全部行将高速缓存到缓冲池外: Keep Rows In Private Memory 如果该表具有易变的基数属性集,则会通过以下信息指出: Volatile Cardinality 2.2临时表信息1.临时表信息存取方案在瞬态或临时工作表中执行操作期间,它使用临时表来存储数据。仅当执行存取方案时,此表才存在。通常,当在存取方案中需要提前对子查询求值时,或当中间结果不适合可用内存时,会使用临时表。 如果需要创建临时表,则会出现两个可能的语句中的一个。这些语句指示将创建一个临时表,并将行插入其中。该标识是引用临时表时为方便起见而

17、由 db2expln 指定的标识。此标识以字母“t”为前缀,以指示该表是临时表。 以下语句指示将创建一个普通的临时表: Insert Into Temp Table ID = tn 以下语句指示多个子代理程序将并行创建一个普通的临时表: Insert Into Shared Temp Table ID = tn 以下语句指示将创建一个已排序的临时表: Insert Into Sorted Temp Table ID = tn 以下语句指示多个子代理程序将并行创建一个已排序的临时表: Insert Into Sorted Shared Temp Table ID = tn 以下语句指示将创建一个

18、已声明全局临时表: Insert Into Global Temp Table ID = ts,tn 以下语句指示多个子代理程序将并行创建一个已声明全局临时表: Insert Into Shared Global Temp Table ID = ts,tn 以下语句指示将创建一个已排序已声明全局临时表: Insert Into Sorted Global Temp Table ID = ts,tn 以下语句指示多个子代理程序将并行创建一个已排序已声明全局临时表: Insert Into Sorted Shared Global Temp Table ID = ts,tn 上述每个语句都将后跟下

19、列内容: #Columns = n 它指示要插入临时表中的每一行有多少列。 2.已排序临时表信息已排序的临时表可以由类似如下的操作产生: ORDER BY DISTINCT GROUP BY Merge Join = ANY 子查询 ALL 子查询 INTERSECT 或 EXCEPT UNION(不带 ALL 关键字) 在已排序的临时表的原始创建语句后,可跟许多附加语句: 以下语句指示在排序中使用的键列数: #Sort Key Columns = n 对于排序键中的每一列,将会显示下列其中一行: Key n: column_name (Ascending) Key n: column_nam

20、e (Descending) Key n: (Ascending) Key n: (Descending) 以下语句提供对行数和行大小的估计,以便在运行时可以分配最优的排序堆。 Sortheap Allocation Parameters:| #Rows = n| Row Width = n 如果只需要排序结果的前几行,则会显示下列内容: Sort Limited To Estimated Row Count 对于在“对称多处理器”(SMP)环境中的排序,要执行的排序的类型由下列语句之一指示: Use Partitioned Sort Use Shared Sort Use Replicate

21、d Sort Use Round-Robin Sort 以下语句指示排序产生的结果是否留在排序堆中: Piped 和 Not Piped 如果指示管道排序,则数据库管理器会将排序的输出保留在内存中,而不是将排序结果置于另一个临时表中。 以下语句指示在排序期间将除去重复的值: Duplicate Elimination 如果正在排序中执行聚集,则下列其中一个语句会指示它: Partial Aggregation Intermediate Aggregation Buffered Partial Aggregation Buffered Intermediate Aggregation 3.临时表

22、完成 在包含用于创建临时表的下推操作的表存取之后(即,创建临时表操作是在表存取范围内发生的),有一个“完成”语句,它通过让临时表准备向后续的临时表存取提供行,来处理文件结尾。将显示下列其中一行: Temp Table Completion ID = tn Shared Temp Table Completion ID = tn Sorted Temp Table Completion ID = tn Sorted Shared Temp Table Completion ID = tn 4.表函数 表函数是用户定义的函数(UDF),它将数据以表的形式返回至语句。表函数由以下语句指示: Acce

23、ss User Defined Table Function| Name = schema.funcname| Specific Name = specificname| SQL Access Level = accesslevel| Language = lang| Parameter Style = parmstyle| Fenced Not Deterministic| Called on NULL Input Disallow Parallel| Not Federated Not Threadsafe 特定名称唯一标识调用的表函数。其余行详细描述函数的属性。2.3连接信息有三种类型的

24、连接: 散列连接 合并连接 嵌套循环连接。 当在一节中执行到要执行连接时,会显示下列其中一个语句: Hash JoinMerge JoinNested Loop Join 执行左外连接是可能的。左外连接由下列其中一个语句指示: Left Outer Hash JoinLeft Outer Merge JoinLeft Outer Nested Loop Join 对于合并和嵌套循环连接,连接的外部表将是在输出中显示的先前存取语句所引用的表。连接的内部表将是在连接语句范围内包含的存取语句所引用的表。对于散列连接,将存取语句反向,将外部表包含在连接范围之内,而内部表出现在连接之前。 对于散列或合并

25、连接,可能出现下列附加语句: 在某些环境中,连接只需要确定内部表中的任何行是否与外部表中的当前行匹配。它是通过下列语句来指示的: Early Out: Single Match Per Outer Row 在连接完成之后,应用谓词是可能的。将指示应用的谓词数,如下所示: Residual Predicate(s)| #Predicates = n 对于散列连接,可能出现下列附加语句: 已根据内部表构建了散列表。如果在进行内部表存取时将散列表的构建压入一个谓词中,则在存取内部表时用以下语句指示该构建: Process Hash Table For Join 当存取外部表时,可以构建一个探测表来提

26、高连接的性能。在存取外部表时用以下语句指示探测表的构建: Process Probe Table For Hash Join 构建散列表所需的估计字节数由以下项表示: Estimated Build Size: n 构建探测表所需的估计字节数由以下项表示: Estimated Probe Size: n 对于嵌套循环连接,紧接在连接语句之后可能会出现以下附加语句: Piped Inner 此语句指示连接的内部表是另一系列的操作的结果。这也称为 组合内连接 。 如果一个连接涉及两个以上的表,则应从头到尾读取说明步骤。例如,假设说明输出具有下列数据流: Access . W Join | Access . X Join | Access . Y Join | Access . Z 执行的步骤将是: 1. 提取 W 中合格的行。 2. 将 W 中的行与 X 中的(下一)行连接,并调用结果 P1(表示编号 1 的部分连接结果)。 3. 将 P1 与 Y 中的(下一)行连接,以创建 P2。 4. 将 P2 与 Z 中的(下一)行连接,以获取一个完整的结果行。 5. 如果 Z 中存在其它行,则转至步骤 4。 6. 如果 Y 中存在其它行,则转至步骤 3。 7. 如果 X 中存在其它行,则转至步骤 2。 8.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2