以 DELUXE 方式加载数据

DELUXE 方式将快速并行加载与索引评估和唯一约束评估结合起来。数据库服务器对所有数据库中的被索引的目标表和在日志记录的数据库中 STANDARD 目标表的选择这种方式。

注:

DELUXE 方式通常使用单行插入,可以向包含索引的表添加行。在加载期间,该插入修改每行的每个索引。该插入还会检查每一行的约束。DELUXE 方式加载允许您在加载期间将表保持为未锁定的状态,因此其它用户可以继续使用它。

您还可以在不包含索引的表上使用 DELUXE 方式;例如,您希望在加载期间可以完成恢复或持续存取表。

要准备表以 DELUXE 方式加载,请创建内部表的类型为 STANDARD ,并用 DELUXE 关键字创建内部表。

在表上使用 DELUXE 方式加载:

  1. 如果您希望行锁定,请在 CREATE TABLE 语句中指定行锁定。(缺省情况下时页面锁定。)如果您想要其它用户在加载期间可以读取该表,那么将锁定方式设置为 share 。否则,设置为 exclusive
    BEGIN WORK;
                LOCK TABLE employee IN SHARE MODE;
  2. 定义外部表。
    CREATE EXTERNAL TABLE emp_ext 
                SAMEAS employee
                USING (
                DATAFILES ("DISK:/work2/mydir/emp.dat"),
                REJECTFILE "/work2/mydir/emp.rej",
                DELUXE
                );
  3. 加载该表。
    INSERT INTO employee SELECT * FROM emp_ext;
  4. 提交该加载,释放行或页面锁定。
    COMMIT WORK;
重要: 配置逻辑日志以允许最大并发 DELUXE 加载事务完成。