DBMS_EXT_TABLE_CACHE 程序包

此表汇总了 DBMS_EXT_TABLE_CACHE 程序包中包含的子程序。

子程序 说明
ADD_BY_LIKE 过程 将一个或多个与指定筛选器匹配的文件添加到外部表高速缓存中。
ADD_FILE 过程 将文件添加到外部表高速缓存中。
ADD_TABLE 过程 将指定外部表中的文件添加到外部表高速缓存中。
CLEAR 过程 清除外部表高速缓存。
CREATE_CACHE 过程 创建外部表高速缓存。
禁用过程 禁用外部表高速缓存。
DROP_BY_LIKE 过程 根据指定的筛选器从外部表高速缓存中删除文件。
DROP_CACHE 过程 删除外部表高速缓存。
DROP_FILE 过程 从外部表高速缓存中删除指定的外部表文件。
ENABLE 程序 启用以前禁用的外部表高速缓存。
GET_USER_PROPERTY 函数 检索外部表高速缓存的高速缓存首选项。
RETIRE_FILES 过程 从高速缓存中删除早于指定间隔的一个或多个文件。
SET_USER_PROPERTY 过程 指定外部表高速缓存的高速缓存首选项。
VALIDATE 过程 验证外部表高速缓存。

ADD_BY_LIKE 过程

DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE 过程将一个或多个指定文件从对象存储加载到外部表高速缓存中。

语法

DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      path_filters IN CLOB,
      esc_char     IN VARCHAR2 DEFAULT NULL,
      force        IN BOOLEAN  DEFAULT FALSE);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
path_filters PATH_FILTERS 是用于在文件 URL 中搜索指定模式的路径过滤器的 JSON_ARRAY。
esc_char

指定要在路径过滤器中使用的转义符。如果模式中的转义符位于 '%' 或 '_' 之前,则将按字面意义解释特殊字符,而不是作为特殊模式匹配字符。

此参数是可选的,此参数的默认值为 NULL

force

强制在高速缓存中覆盖指定的现有文件,即使未修改文件也是如此。

此参数是可选的,force 参数的默认值为 FALSE

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
    owner        => 'SALES',
    table_name   =>'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata2.parquet"]'
);
END;
/

用法附注

默认情况下,在以下情况下,DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE 过程将跳过加载文件:

ADD_FILE 过程

DBMS_EXT_TABLE_CACHE.ADD_FILE 过程将指定的文件加载到外部表高速缓存中。

语法

DBMS_EXT_TABLE_CACHE.ADD_FILE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      file_url     IN VARCHAR2,
      force        IN BOOLEAN DEFAULT FALSE);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
file_url 指定文件 URL。
force

强制在高速缓存中覆盖指定的现有文件,即使未修改文件也是如此。

此参数是可选的,force 参数的默认值为 FALSE

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_FILE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

使用说明

ADD_LATEST_FILES 过程

DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES 将一个或多个文件加载到外部表高速缓存中。文件是根据 SINCE 参数和当前时间戳确定的时间间隔加载的。

语法

DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
      owner        IN  VARCHAR2,
      table_name   IN  VARCHAR2,
      since        IN  INTERVAL DAY TO SECOND,
      max_files    IN  NUMBER,
      force        IN  BOOLEAN DEFAULT FALSE);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
since since 参数接受 INTERVAL DAY TO SECOND 值,用于计算 since 值与当前时间戳之间的时间间隔。然后,根据文件上次修改的时间,使用生成的时间间隔来加载文件。
max_files

指定 max_files 值以限制可加载到外部表高速缓存中的文件数。

此参数是可选的,在未指定时默认为无限制。

force

强制在高速缓存中覆盖指定的现有文件,即使未修改文件也是如此。

此参数是可选参数,此参数的缺省值为 FALSE

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    since        => INTERVAL '7' DAY,
    max_files    => 5,
    force        => TRUE);
END;
/

用法附注

默认情况下,在以下情况下,DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES 过程将跳过加载文件:

ADD_TABLE 过程

DBMS_EXT_TABLE_CACHE.ADD_TABLE 过程将整个表或外部表的特定百分比加载到高速缓存中。

语法

DBMS_EXT_TABLE_CACHE.ADD_TABLE (
      owner         IN VARCHAR2,
      table_name    IN VARCHAR2,
      percent_files IN NUMBER DEFAULT NULL,
      force         IN BOOLEAN DEFAULT FALSE);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
percent_files

指定要高速缓存的表数据的百分比。例如,从 1 升级到 100。

默认情况下,将加载所有文件。

force

强制在高速缓存中覆盖指定的文件,即使未修改这些文件也是如此。

此参数是可选的,force 的默认值为 FALSE

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_TABLE (
    owner         => 'SALES',
    table_name    => 'STORE_SALES',
    percent_files => 50);
END;
/

使用说明

CLEAR 过程

DBMS_EXT_TABLE_CACHE.CLEAR 过程在保留高速缓存的同时从外部表高速缓存中删除所有文件。

语法

DBMS_EXT_TABLE_CACHE.CLEAR (
      owner         IN VARCHAR2,
      table_name    IN VARCHAR2);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.CLEAR (
    owner         => 'SALES',
    table_name    => 'STORE_SALES');
END;
/

CREATE_CACHE 过程

DBMS_EXT_TABLE_CACHE.CREATE_CACHE 过程在自治 AI 数据库实例中创建外部表高速缓存。

语法

DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2,
      partition_type   IN    VARCHAR2);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表的名称。
partition_type

以下是 partition_type 参数的有效值:

  • FILE:使用 FILE$PATHFILE$NAME 不可见列对外部表高速缓存进行分区。

  • PATH:使用 FILE$PATH 不可见列对外部表高速缓存进行分区。

file$path:指定文件路径文本,直到对象名称的开头。

file$name:指定对象名称,包括最后 '/' 后面的所有文本。

有关详细信息,请参阅外部表元数据列

范例

BEGIN
    DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES',
      partition_type => 'FILE');
END;
/

用法附注

DBMS_EXT_TABLE_CACHE.CREATE_CACHE 在自治 AI 数据库实例中创建外部表高速缓存。创建高速缓存与在数据库方案中创建表类似。

禁用过程

DBMS_EXT_TABLE_CACHE.DISABLE 过程禁用指定的外部表高速缓存。高速缓存标记为已禁用;但是,高速缓存中的数据会保留。

语法

DBMS_EXT_TABLE_CACHE.DISABLE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2
);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。

范例

BEGIN
    DBMS_EXT_TABLE_CACHE.DISABLE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES');
END;
/

用法附注

DBMS_EXT_TABLE_CACHE.DISABLE 不会从外部表高速缓存中删除任何数据。而是将高速缓存标记为 DISABLED ,这意味着优化程序无法使用高速缓存进行查询重写。

DROP_BY_LIKE 过程

DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE 过程从外部表高速缓存中删除一个或多个文件。将根据指定的筛选器删除文件。

语法

DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      path_filters IN CLOB,
      esc_char     IN VARCHAR2 DEFAULT NULL);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
path_filters PATH_FILTERS 是用于在文件 URL 中搜索指定模式的路径过滤器的 JSON_ARRAY。
esc_char

指定要在路径过滤器中使用的转义符。如果模式中的转义符位于 '%' 或 '_' 之前,则将按字面意义解释特殊字符,而不是作为特殊模式匹配字符。

此参数是可选的,此参数的默认值为 NULL

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata2.parquet"]'
);
END;
/

DROP_CACHE 过程

DBMS_EXT_TABLE_CACHE.DROP_CACHE 过程将删除指定的外部表高速缓存。此过程将删除高速缓存并释放与高速缓存关联的存储空间。

语法

DBMS_EXT_TABLE_CACHE.DROP_CACHE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2
);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。

范例

BEGIN
    DBMS_EXT_TABLE_CACHE.DROP_CACHE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES');
END;
/

用法附注

删除高速缓存会从数据字典中删除其元数据并删除其所有高速缓存的数据。

DROP_FILE 过程

DBMS_EXT_TABLE_CACHE.DROP_FILE 过程将指定文件从外部表高速缓存中删除。

语法

DBMS_EXT_TABLE_CACHE.DROP_FILE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      file_url     IN VARCHAR2);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
file_url 指定文件 URL。

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_FILE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

ENABLE 程序

DBMS_EXT_TABLE_CACHE.ENABLE 过程启用以前禁用的外部表高速缓存。创建高速缓存时,它默认情况下处于启用状态。

语法

DBMS_EXT_TABLE_CACHE.ENABLE (
    owner         IN    VARCHAR2,
    table_name    IN    VARCHAR2
);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.ENABLE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES'
 );
END;
/

GET_USER_PROPERTY 函数

该函数返回指定方案的高速缓存首选项并返回 Number

语法

DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
    property_name   IN   VARCHAR2,
    owner           IN   VARCHAR2 DEFAULT NULL);

RETURN NUMBER;

参数

Parameter (参数) 说明
property_name

指定属性名称。

以下是 property_name 的有效值:

  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

owner 指定方案名称。

返回值

返回值 说明
Number 中的 MAX_CACHE_SIZEMAX_CACHE_SIZE 值。 根据 property_name 参数,返回的数字为 MAX_CACHE_SIZEMAX_CACHE_SIZE 值。

范例

SET SERVEROUTPUT ON
    DECLARE
    max_cache_sz NUMBER,
    BEGIN
    max_cache_sz := DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
        property_name       => 'MAX_CACHE_SIZE',
        owner               => 'SALES');
END;
/

RETIRE_FILES 过程

DBMS_EXT_TABLE_CACHE.RETIRE_FILES 从高速缓存中删除早于指定间隔的文件。将根据使用 BEFORE 参数值计算的时间间隔删除文件。

语法

DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        IN VARCHAR2,
    table_name   IN VARCHAR2,
    before       IN INTERVAL DAY TO SECOND
);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
before before 参数接受 INTERVAL DAY TO SECOND 值,用于计算 before 值与当前时间戳之间的时间间隔。然后,使用生成的时间间隔从高速缓存中删除文件。

范例

BEGIN
 DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    before       => INTERVAL '30' DAY);
END;
/

SET_USER_PROPERTY 过程

DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY 过程设置方案的高速缓存首选项。

语法

DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    property_name    IN    VARCHAR2,
    property_value   IN    NUMBER,
    owner            IN    VARCHAR2 DEFAULT NULL);

参数

Parameter (参数) 说明
property_name

指定属性名称。

以下是 property_name 的有效值:

  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

property_value 指定属性值。
owner 指定方案名称。

范例

BEGIN
    DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    property_name  => 'MAX_CACHE_PERCENT',
    property_value => 100,
    owner          => 'SALES');
END;
/

VALIDATE 过程

DBMS_EXT_TABLE_CACHE.VALIDATE 过程验证外部表高速缓存。如果在数据库中未找到引用的外部表,则会报告错误。

语法

DBMS_EXT_TABLE_CACHE.VALIDATE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2,
      raise_errors     IN    BOOLEAN DEFAULT TRUE);

参数

Parameter (参数) 说明
owner 指定方案名称。
table_name 指定外部表名。
raise_errors 当外部表高速缓存标记为无效时报告。

范例

BEGIN
  DBMS_EXT_TABLE_CACHE.VALIDATE (
    owner         => 'SALES',
    table_name    => 'STORE_SALES',
    raise_errors  => TRUE);
END;
/

相关内容

利用外部表高速缓存提高查询性能