使用 Teradata PT API 时,可以在进行表复制操作前先进行假脱机。Teradata Database 会将数据写入临时磁盘空间(Spool 空间),并保留至完成选择。该操作称为假脱机。尽管缺省情况下会进行假脱机来避免数据不一致,但它会增加复制数据库对象所需的时间。要提高使用 Teradata PT API 的作业中特定表复制操作的性能,可对该表禁用假脱机。
使用 Teradata PT API 运算符复制表时,使用此功能的不足之处包括以下几个方面:
- 在整个复制过程中,会保持锁定。
- 由于假脱机阶段会检测数据转换错误,因此复制表时禁用假脱机可能会产生转换错误。如果出现该情况,请更正错误,然后重新启动作业。
export_without_spool 元素是可选的,缺省情况下会启用。该元素只能在 XML 中指定,不能作为参数在命令行界面上使用。该元素仅适用于 Teradata PT API 作业,并且只适用于 Teradata Database 13.10 及更高版本。如果指定 true 作为 XML 中 export_without_spool 元素的值,并且源或目标的版本低于 Teradata Database 13.10,或者作业使用的是其他实用程序,则该元素会被忽略。该元素在 XML 文件中的 table 元素下。下表列出了 export_without_spool 元素的有效值。
值 | 说明 |
---|---|
false | Data Mover 会在复制表时向 spool 空间写入。 |
true | Data Mover 复制表时不写入 spool 空间。 这是缺省值。 |
未指定 | 相当于忽略 XML 中的 export_without_spool 元素。在使用 Teradata PT API 的表复制作业中,Data Mover 从源 Teradata Database 中导出数据时不使用假脱机。 |
由于您只能对表复制操作禁用假脱机,因此应在 table 标记下为 export_without_spool 元素指定值 true。在以下示例中,复制了表 srcDatabase.Employees,但对该表禁用了假脱机。
<database selection="unselected"> <name>srcDatabase</name> <table selection="included"> <name>Employees</name> <export_without_spool>true</export_without_spool> </table> </database>