在查看查询计划/执行时间时,我发现它大部分时间都在scanprepnode中。它是否与列相关。我在查询中使用的表中有两个有组织的列。
以下是来自计划文件的片段
1 [00]:spu ScanPrepNode表3347051 snippet 2 scanFlags 0x0
1 [01]:spu ScanBlockCountNode:收集
1 [02]:spu ReturnNode
501 [00]:dbs ScanBlockCountNode:aggr
2 [00]:spu ScanNode表" TBL" 3347051 memoryMode =无标志= 0x0索引= 0成本= 15271(z)numSlicesEst = 1 - 成本= 0.0..2345507.5行= 960.5K宽度= 80大小= 73.3MB Conf = 41 {(IMSI)}
2 [01]:spu RestrictNode(非NULL)
。
。
。
计划开始2014-05-14 12:49:47.801303 GMT 1.738(计划执行)
计划结束2014-05-14 12:49:49.539182 GMT 1.878(计划总计)
估计:规划师581.548 准备0.743 Hmem 8 Mem 16频道1 SQB
实际:重写0.007 计划0.016 GKQ 0.003执行1.864 @ 50%Res 0.242通道1 Mem 4行1字节164
用户:---
资源:---
(1行)
答案 0 :(得分:0)
我找到了答案。扫描准备节点从区域映射中读取有关限制子句中列的信息。此信息在扫描阶段很有用。根据此信息,Netezza仅扫描磁盘上所需的几个扩展区。