系统在下列情况下会使用spool空间: • 在session没有结束时,每个用户查询的返回值。因此,为了存储查询的返回值,每个用户都必须有足够的spool空间。 • 大表. • Large volatile tables. These tables require more available spool space. 对系统需要的spool空间的粗略估计: 对于没有fallback,无compression,且工作量适中的系统,spool空间应占系统MAXPERM的30%,或者占系统CURRENTPERM的40%。 下列情况下需要更多的spool空间: • 高压缩比的数据需要更多的spool空间。 -- 压缩可以降低current perm data storage但不是总会降低spool空间,因为spool表并不总是被压缩。 • 批加载一次可以加载数百万条或更多的记录,因此在加载过程中需要spool空间来存放临时数据。 • 高并发需要更大的spool空间。 下列情况需要较少的spool空间: • Fallback会使用双倍的currentperm来存储数据,但不需要双倍的spool空间。因为只有主拷贝会使用spool空间。 • 适时加载,如运用TPump,一次只加载少量的数据,不需要很多的spool空间。 • 好的调优策略可以运用更少的CPU及spool空间。 Spool空间分类: • Volatile Spool 下列情况下Volatile Spool被释放: 1、Transaction completes (unless the table was created with ON COMMIT PRESERVE ROW) 2、Table is dropped manually during the session 3、Session ends 4、Teradata Database resets • Intermediate Spool 1、当spool结果不再需要时,Intermediate Spool空间被释放。 2、可以通过查看执行计划来判断Intermediate Spool空间被释放的时机。 3、intermediate spool做flush操作后的第一步处理描述为“Last Use” • Output Spool Output results are either: 1、Final rows returned in the answer set for a query 2、Rows updated within, inserted into, or deleted from a base table Permanent, temporary, 及spool数据块不能在相同的cylinder中共存
teradata delete会释放空间吗
最新推荐文章于 2021-07-16 18:01:06 发布