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 |
指定要在路径过滤器中使用的转义符。如果模式中的转义符位于 ' 此参数是可选的,此参数的默认值为 |
force |
强制在高速缓存中覆盖指定的现有文件,即使未修改文件也是如此。 此参数是可选的, |
范例
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 过程将跳过加载文件:
-
这些文件以前已缓存,但仍可在高速缓存中找到。
-
文件自上次高速缓存以来未进行修改。
但是,即使未修改文件,也可以使用
force参数覆盖高速缓存中的文件。
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 |
强制在高速缓存中覆盖指定的现有文件,即使未修改文件也是如此。 此参数是可选的, |
范例
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;
/
使用说明
-
如果指定的文件存在于高速缓存中,并且自上次高速缓存文件以来未进行修改,则
DBMS_EXT_TABLE_CACHE.ADD_FILE过程将跳过将文件加载到高速缓存中。 -
即使未修改文件,也可以使用
force参数覆盖高速缓存中的文件。
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 |
指定 此参数是可选的,在未指定时默认为无限制。 |
force |
强制在高速缓存中覆盖指定的现有文件,即使未修改文件也是如此。 此参数是可选参数,此参数的缺省值为 |
范例
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 过程将跳过加载文件:
-
指定的文件以前已高速缓存,但仍可在高速缓存中使用。
-
指定的文件自上次高速缓存以来未进行修改。
但是,即使未修改文件,也可以使用
force参数覆盖高速缓存中的文件。
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 |
强制在高速缓存中覆盖指定的文件,即使未修改这些文件也是如此。 此参数是可选的, |
范例
BEGIN
DBMS_EXT_TABLE_CACHE.ADD_TABLE (
owner => 'SALES',
table_name => 'STORE_SALES',
percent_files => 50);
END;
/
使用说明
-
DBMS_EXT_TABLE_CACHE.ADD_TABLE尝试将整个表或指定百分比的文件内容缓存到高速缓存中。 -
percent_files和force参数是互斥的。 -
默认情况下,在以下情况下,
DBMS_EXT_TABLE_CACHE.ADD_TABLE过程将跳过加载文件:-
指定的文件以前已高速缓存,但仍可在高速缓存中使用。
-
指定的文件自上次高速缓存以来未进行修改。
但是,即使未修改文件,也可以使用
force参数覆盖高速缓存中的文件。 -
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 |
以下是
有关详细信息,请参阅外部表元数据列。 |
范例
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 |
指定要在路径过滤器中使用的转义符。如果模式中的转义符位于 ' 此参数是可选的,此参数的默认值为 |
范例
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 |
指定属性名称。 以下是
|
owner |
指定方案名称。 |
返回值
| 返回值 | 说明 |
|---|---|
Number 中的 MAX_CACHE_SIZE 或 MAX_CACHE_SIZE 值。 |
根据 property_name 参数,返回的数字为 MAX_CACHE_SIZE 或 MAX_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_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;
/