查询计划Sybase和树数据结构

时间:2013-06-03 08:30:09

标签: database performance tree sybase

这是关于sybase的查询计划以及如何根据查询计划形成树

1) 这个查询计划如何形成正确的树? 从emit.Insert开始是Emit的子元素,Restrict是Insert的子元素,依此类推。它与解释不符。

2)我是否可以了解实际处理过程以及中期结果如何实现最终结果?什么是节点可以拥有的最大子节点数?

抱歉这么久的例子。

文本删除操作符

另一种类型的查询计划,其中DML运算符可以具有多个 child运算符是alter table drop textcol命令,其中textcol是名称 数据类型为text,image或unitext的列的数据。以下查询和 查询计划是使用文本删除操作符的示例:

1> use tempdb
1> create table t1 (c1 int, c2 text, c3 text)
1> set showplan on
1> alter table t1 drop c2

 QUERY PLAN FOR STATEMENT 1 (at line 1).
 Optimized using the Abstract Plan in the PLAN clause.
 5 operator(s) under root
 The type of query is ALTER TABLE.
 ROOT:EMIT Operator

   |INSERT Operator
   | The update mode is direct.
   |
   | |RESTRICT Operator
   | |
   | | |SCAN Operator
   | | | FROM TABLE
   | | | t1
   | | | Table Scan.
   | | | Forward Scan.
   | | | Positioning at start of table.
   | | | Using I/O Size 2 Kbytes for data pages.
   | | | With LRU Buffer Replacement Strategy for data pages.
   | |TEXT DELETE Operator
   | | The update mode is direct.
   | |
   | | |SCAN Operator
   | | | FROM TABLE
   | | | t1
   | | | Table Scan.
   | | | Forward Scan.
   | | | Positioning at start of table.
   | | | Using I/O Size 2 Kbytes for data pages.
   | | | With LRU Buffer Replacement Strategy for data pages.
   | TO TABLE
   | #syb__altab
   | Using I/O Size 2 Kbytes for data pages.


   The below is the explantion

说明:
使用alter table命令删除t1中的两个文本列之一 showplan输出看起来像是一个select into查询计划,因为alter table 内部生成一个select into查询计划。
插入操作符在其左侧调用 子操作符,扫描t1,读取t1的行,并用。构建新行 只有c1和c3列插入到#syb_altab中。
当所有的新行 已插入#syb_altab,插入操作符调用其右子,
文本删除操作符,删除c2列的文本页链 已从t1中删除。
后处理替换了t1的原始页面 使用#syb_altab来完成alter table命令。

0 个答案:

没有答案