DB2 10.5 for Linux, UNIX, and Windows
临时表信息
在存取方案执行期间,将使用一个临时表作为工作表。通常,如果需要在存取方案中提前对子查询进行求值,或者中间结果在可用内存中装不下,那么将使用临时表。
如果需要临时表,那么 db2expln 命令输出将包含下列其中一个语句。
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 --> 多个子代理程序将以并行方式创建
已排序的临时表
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 --> 多个子代理程序将以并行方式创建
已排序的已声明全局临时表
ID 是由 db2expln 指定的标识,旨在便于引用临时表。此 ID 以字母“t”为前缀,以指示该表是临时表。上述每个语句后面都跟着以下语句:
#Columns = n
此语句指示要插入到临时表的每一行所包含的列数。已排序的临时表
已排序的临时表可以由类似如下的操作生成:
- ORDER BY
- DISTINCT
- GROUP BY
- 合并连接
- “= ANY”子查询
- “<> ALL”子查询
- INTERSECT 或 EXCEPT
- UNION(不带 ALL 关键字)
在 db2expln 命令输出中,可能会出现许多与已排序的临时表相关联的语句。
- 以下语句指示在排序中使用的键列数:
对于排序键中的每一列,将显示下列其中一行:#Sort Key Columns = n
Key n: column_name (Ascending) Key n: column_name (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 Replicated Sort Use Round-Robin Sort
- 下列语句指示已排序的结果是否留在排序堆中:
如果指示管道式排序,那么数据库管理器会将已排序的输出保留在内存中,而不是将其放入另一个临时表。Piped Not Piped
- 以下语句指示排序操作期间将移除重复的值:
Duplicate Elimination
- 如果排序操作期间执行了聚集,那么将显示下列其中一个语句:
Partial Aggregation Intermediate Aggregation Buffered Partial Aggregation Buffered Intermediate Aggregation
临时表完成
每当在表访问的作用域内创建临时表时,将显示一个完成语句。此语句可以是下列其中一项:
Temp Table Completion ID = tn
Shared Temp Table Completion ID = tn
Sorted Temp Table Completion ID = tn
Sorted Shared Temp Table Completion ID = tn
表函数
表函数是将数据以表形式返回给语句的用户定义的函数 (UDF)。表函数由下列语句指示,这些语句将提供有关函数属性的详细信息。特定名称将唯一地标识所调用的表函数。
Access 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