此部分中的函数支持配置和分析数据库和查询性能。
性能分析函数
- 1: 配置函数
- 1.1: CLEAR_PROFILING
- 1.2: DISABLE_PROFILING
- 1.3: ENABLE_PROFILING
- 1.4: SHOW_PROFILING_CONFIG
- 2: 统计信息管理函数
- 2.1: ANALYZE_EXTERNAL_ROW_COUNT
- 2.2: ANALYZE_STATISTICS
- 2.3: ANALYZE_STATISTICS_PARTITION
- 2.4: DROP_EXTERNAL_ROW_COUNT
- 2.5: DROP_STATISTICS
- 2.6: DROP_STATISTICS_PARTITION
- 2.7: EXPORT_STATISTICS
- 2.8: EXPORT_STATISTICS_PARTITION
- 2.9: IMPORT_STATISTICS
- 2.10: VALIDATE_STATISTICS
- 3: 工作负载管理函数
- 3.1: ANALYZE_WORKLOAD
- 3.2: CHANGE_CURRENT_STATEMENT_RUNTIME_PRIORITY
- 3.3: CHANGE_RUNTIME_PRIORITY
- 3.4: MOVE_STATEMENT_TO_RESOURCE_POOL
- 3.5: SLEEP
1 - 配置函数
此部分包含特定于 Vertica 的配置函数。
1.1 - CLEAR_PROFILING
从指定分析类型的内存数据中清除。
注意
Vertica 将在内存中存储配置数据,因此配置可能占用大量内存,具体取决于您收集的数据量。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
CLEAR_PROFILING( 'profiling-type' [, 'scope'] )
参数
-
profiling-type
- 要清除的分析数据的类型:
-
session
:清除对基本会话参数的配置,并锁定超时数据。 -
query
:清除对已运行的查询的常规信息的配置,例如使用的查询字符串和查询持续时间。 -
ee
:清除对关于每个查询的执行运行的信息的配置。
-
-
scope
- 指定清除对指定数据进行配置的范围,为以下之一:
-
local
:清除当前会话的分析数据。 -
global
:清除所有数据库会话的配置数据。
-
示例
以下语句清除了对查询所做分析的数据:
=> SELECT CLEAR_PROFILING('query');
另请参阅
1.2 - DISABLE_PROFILING
禁止当前会话收集指定类型的分析数据。有关详细信息,请参阅 启用分析。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DISABLE_PROFILING( 'profiling-type' )
参数
profiling-type
- 将禁用的分析数据类型:
-
session
:禁用针对基本会话参数和锁定超时数据的分析。 -
query
:禁用针对运行的查询相关常规信息(如,使用的查询字符串和查询持续时间)的分析。 -
ee
:禁用针对各查询的执行运行相关信息的分析。
-
示例
以下语句可禁用对查询执行运行的分析:
=> SELECT DISABLE_PROFILING('ee');
DISABLE_PROFILING
-----------------------
EE Profiling Disabled
(1 row)
另请参阅
1.3 - ENABLE_PROFILING
允许当前会话收集指定类型的分析数据。有关详细信息,请参阅 启用分析。
注意
Vertica 将在内存中存储会话和查询配置数据,因此配置可能占用大量内存,具体取决于您收集的数据量。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ENABLE_PROFILING( 'profiling-type' )
参数
-
profiling-type
- 要启用的分析数据的类型:
-
session
:启用针对基本会话参数和锁定超时数据的配置。 -
query
:启用针对运行的查询的常规信息(如查询字符串和查询持续时间)的配置。 -
ee
:启用针对各查询的执行运行信息的配置。
-
示例
下列语句将启用对查询执行运行的分析:
=> SELECT ENABLE_PROFILING('ee');
ENABLE_PROFILING
----------------------
EE Profiling Enabled
(1 row)
另请参阅
1.4 - SHOW_PROFILING_CONFIG
显示是否启用分析。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
稳定语法
SHOW_PROFILING_CONFIG ()
示例
以下语句显示为所有分析类型(会话、执行引擎和查询)启用了全局分析:
=> SELECT SHOW_PROFILING_CONFIG();
SHOW_PROFILING_CONFIG
------------------------------------------
Session Profiling: Session off, Global on
EE Profiling: Session off, Global on
Query Profiling: Session off, Global on
(1 row)
另请参阅
2 - 统计信息管理函数
此部分包含用于收集和管理表数据统计信息的 Vertica 函数。
2.1 - ANALYZE_EXTERNAL_ROW_COUNT
计算外部表中的确切行数。 ANALYZE_EXTERNAL_ROW_COUNT
在后台运行。
注意
使用DO_TM_TASK
无法计算外部表的行数。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ANALYZE_EXTERNAL_ROW_COUNT ('[[[database.]schema.]table‑name ]')
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- table‑name
- 指定要计算精确行计数的外部表的名称。如果提供空字符串,Vertica 会计算所有外部表的精确行数。
特权
外部表上的任何 INSERT/UPDATE/DELETE 权限
示例
计算所有外部表的精确行计数:
=> SELECT ANALYZE_EXTERNAL_ROW_COUNT('');
计算表 loader_rejects
的精确行计数:
=> SELECT ANALYZE_EXTERNAL_ROW_COUNT('loader_rejects');
另请参阅
2.2 - ANALYZE_STATISTICS
从存储与指定表相关联的投影的所有节点上收集并聚合数据示例和存储信息。函数跳过复杂数据类型列。默认情况下,Vertica 会根据资源限制分析单个查询执行计划中的多个列。此类多列分析有助于实现以下目标:
-
减少计划执行延迟。
-
加快对相对较小且包含多列的表进行分析。
Vertica 将统计信息写入数据库编录。查询优化器将使用这些收集的数据来创建查询计划。没有这些数据,查询优化器会假设数据值均匀分布,所有投影的存储使用量相等。
您可以使用 CTRL+C 或调用 INTERRUPT_STATEMENT 取消统计信息收集。
ANALYZE_STATISTICS 为函数 ANALYZE_HISTOGRAM 的别名,不再进行记录。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ANALYZE_STATISTICS ('[[[database.]schema.]table]' [, 'column‑list' [, percent ]] )
返回
0 - 成功
如果发生错误,请参阅
vertica.log
以了解详细信息。
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
表
- 在其上收集数据的表。如果设置为空字符串,Vertica 将收集所有数据库表及其投影的统计信息。
-
column‑list
- table 中以逗号分隔的列的列表,通常为谓词列。Vertica 将数据收集范围缩小到指定的列。不支持复杂类型列。
如果通过添加列并以默认值或其他值填充其内容等方式对表进行更改,则在此列上调用 ANALYZE_STATISTICS 以获取最新统计信息。
-
percent
- 一个介于 0 和 100 之间的浮点值,指定从磁盘读取数据的百分比(不是要分析的数据量)。如果省略此实参,Vertica 会将百分比设置为 10。
如果分析超过 10% 的磁盘空间,处理时间会成比例地增加,但是得到的采样精确度较高。
特权
非超级用户:
-
架构:USAGE
-
表:INSERT、DELETE 或 UPDATE 之一
限制
- Vertica 在本地和全局临时表上支持 ANALYZE_STATISTICS。在这两种情况下,只能获取使用选项 ON COMMIT PRESERVE ROWS 创建的表的统计信息。否则,Vertica 会在提交当前事务时删除表内容,因此没有可用于分析的表数据。Vertica 不从以下投影中收集任何统计数据: * 实时聚合和 Top-K 投影 * 定义为表达式中包含 SQL 函数的投影
- Vertica 不收集任何关于 ARRAY、SET 或 ROW 类型的列的统计信息。
示例
请参阅收集表统计信息。
另请参阅
ANALYZE_STATISTICS_PARTITION2.3 - ANALYZE_STATISTICS_PARTITION
收集并聚合指定表中一系列分区的数据示例和存储信息。Vertica 将收集的统计信息写入数据库编录。
您可以使用 CTRL+C 或元函数 INTERRUPT_STATEMENT 取消统计信息收集。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ANALYZE_STATISTICS_PARTITION ('[[database.]schema.]table', 'min‑range‑value','max‑range‑value' [, 'column‑list' [, percent ]] )
返回
0:成功
如果发生错误,请参阅
vertica.log
以了解详细信息。
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- 表
- 在其上收集数据的表。
- min‑range‑value
max‑range‑value - 要分析的分区键的最小值和最大值,其中 min‑range‑value 必须≤ max‑range‑值。要分析一个分区,min‑range‑value 与 max‑range‑value 必须相等。
- column‑list
- table 中以逗号分隔的列的列表,通常为谓词列。Vertica 将数据收集范围缩小到指定的列。
- percent
- 介于 0 和 100 之间的浮点值,指定从磁盘读取数据的百分比(不是要分析的数据量)。如果省略此实参,Vertica 会将百分比设置为 10。
如果分析超过 10% 的磁盘空间,处理时间会成比例地增加,但是得到的采样精确度较高。
特权
非超级用户:
-
架构:USAGE
-
表:INSERT、DELETE 或 UPDATE 之一
要求和限制
ANALYZE_STATISTICS_PARTITION 具有以下要求和限制:
-
该表必须进行分区,并且不能包含未分区的数据。
-
表分区表达式必须指定单个列。支持以下表达式:
-
仅指定列的表达式,即对所有列值进行分区。例如:
PARTITION BY ship_date GROUP BY CALENDAR_HIERARCHY_DAY(ship_date, 2, 2)
-
如果列是 DATE 或 TIMESTAMP/TIMESTAMPTZ,则分区表达式可以指定支持的日期/时间函数,该函数会返回该列或其任何部分,例如月份或年份。例如,以下分区表达式指定对列
order_date
的年份部分进行分区:PARTITION BY YEAR(order_date)
-
该表达式对列执行加法或减法。例如:
PARTITION BY YEAR(order_date) -1
-
-
表分区表达式不能将指定列强制转换为另一种数据类型。
-
Vertica 不从以下投影中收集任何统计数据:
-
实时聚合投影和 Top-K 投影
-
定义这些投影可以在表达式中包含 SQL 函数
-
示例
请参阅收集分区统计信息。
2.4 - DROP_EXTERNAL_ROW_COUNT
移除使用
ANALYZE_EXTERNAL_ROW_COUNT
编译的外部表行计数统计信息。 DROP_EXTERNAL_ROW_COUNT
在后台运行。
当心
重新生成统计信息可能比较耗时。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DROP_EXTERNAL_ROW_COUNT ('[[[database.]schema.]table‑name ]');
参数
- 架构
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- table‑name
- 要移除精确行计数的外部表。如果指定空字符串,Vertica 会删除所有外部表的精确行计数统计信息。
特权
-
对表的 INSERT/UPDATE/DELETE 权限
-
包含表的架构上的 USAGE 权限
示例
删除外部表 loader_rejects
的行计数统计信息:
=> SELECT DROP_EXTERNAL_ROW_COUNT('loader_rejects');
另请参阅
收集数据库统计信息2.5 - DROP_STATISTICS
移除先前由
ANALYZE_STATISTICS
生成的数据库预测的统计数据。删除此数据后,Vertica 优化器会使用默认统计信息创建查询计划。
当心
重新生成统计信息可能产生大量开销。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DROP_STATISTICS ('[[[database.]schema.]table]' [, 'category' [, '[column‑list]'] )
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
表
- 要删除统计信息的表。如果设置为空字符串,Vertica 将删除所有数据库表及其投影的统计信息。
-
类别
- 要删除的统计信息类别,为以下之一:
-
ALL
(默认值):删除所有统计信息,包括直方图和行计数。 -
HISTOGRAMS
:仅删除直方图。保留行计数统计信息。
-
-
column‑list
- table 中以逗号分隔的列的列表,通常为谓词列。Vertica 将删除的统计信息范围缩小到指定的列。如果省略此参数或提供空字符串,Vertica 会删除所有列的统计信息。
特权
非超级用户:
-
架构:USAGE
-
表:INSERT、DELETE 或 UPDATE 之一
示例
删除表 store.store_sales_fact
的所有基础统计信息:
=> SELECT DROP_STATISTICS('store.store_sales_fact');
DROP_STATISTICS
-----------------
0
(1 row)
删除所有表投影的统计信息:
=> SELECT DROP_STATISTICS ('');
DROP_STATISTICS
-----------------
0
(1 row)
另请参阅
DROP_STATISTICS_PARTITION
2.6 - DROP_STATISTICS_PARTITION
移除先前由
ANALYZE_STATISTICS_PARTITION
生成的数据库预测的统计数据。删除此数据后,Vertica 优化器会使用表级统计信息(如果可用)或默认统计信息创建查询计划。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DROP_STATISTICS_PARTITION ('[[database.]schema.]table', '[min‑range‑value]', '[max‑range‑value]' [, category [, '[column‑list]'] )
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
表
- 要删除统计信息的表。
-
min‑range‑value max‑range‑value
- 要删除统计信息的分区键的最小值和最大值,其中 min-range-value 必须 ≤ max‑range‑value。如果您为这两个参数提供空字符串,Vertica 会删除此表或指定列的所有分区级统计信息。
重要
要删除的键范围必须等于先前通过ANALYZE_STATISTICS_PARTITION
分析的完整分区范围或其超集。如果范围省略任何分析分区,则DROP_STATISTICS_PARTITION
不会删除任何统计信息。 -
类别
- 要删除的统计信息类别,为以下之一:
-
BASE
(默认值):删除直方图和行计数(最小/最大列值、直方图)。 -
HISTOGRAMS
:仅删除直方图。保留行计数统计信息。 -
ALL
:删除所有统计信息。
-
-
column‑list
- table 中以逗号分隔的列的列表,通常为谓词列。Vertica 将删除的统计信息范围缩小到指定的列。如果省略此参数或提供空字符串,Vertica 会删除所有列的统计信息。
特权
非超级用户:
-
架构:USAGE
-
表:INSERT、DELETE 或 UPDATE 之一
另请参阅
DROP_STATISTICS
2.7 - EXPORT_STATISTICS
从先前通过 ANALYZE_STATISTICS 收集的数据生成 XML 格式的统计信息。导出统计信息之前,请调用 ANALYZE_STATISTICS 以收集最新数据。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
稳定语法
EXPORT_STATISTICS ('[ filename ]' [,'table‑spec' [,'column[,...]']])
参数
-
filename
- 指定在何处写入生成的 XML。如果 filename 已存在,EXPORT_STATISTICS 会覆盖它。如果您提供的是空字符串,则 EXPORT_STATISTICS 会将 XML 写入标准输出。
- table‑spec
- 指定要在其上导出投影统计信息的表:
[[database.]schema.]table
默认架构为
public
。如果指定一个数据库,它必须是当前数据库。如果省略 table‑spec 或将其设置为空字符串,Vertica 会导出数据库的所有统计信息。
-
列
- table‑spec 中的列名称,通常为谓词列。可以指定多个逗号分隔列。Vertica 将导出的统计信息范围缩小到指定的列。
超级用户
限制
EXPORT_STATISTICS 不导出 LONG 数据类型列的统计信息。
示例
以下语句将 VMart 示例数据库的统计信息导出到文件:
=> SELECT EXPORT_STATISTICS('/opt/vertica/examples/VMart_Schema/vmart_stats.xml');
EXPORT_STATISTICS
-----------------------------------
Statistics exported successfully
(1 row)
下一个语句从名为 food 的表中导出单列(“价格 (price)”)的统计信息:
=> SELECT EXPORT_STATISTICS('/opt/vertica/examples/VMart_Schema/price.xml', 'food.price');
EXPORT_STATISTICS
-----------------------------------
Statistics exported successfully
(1 row)
另请参阅
2.8 - EXPORT_STATISTICS_PARTITION
从先前通过 ANALYZE_STATISTICS_PARTITION 收集的数据生成 XML 格式的分区级统计信息。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
稳定语法
EXPORT_STATISTICS_PARTITION ('[ filename ]', 'table‑spec', 'min‑range‑value','max‑range‑value' [, 'column[,...]' )
参数
-
filename
- 指定在何处写入生成的 XML。如果 filename 已经存在,EXPORT_STATISTICS_PARTITION 会覆盖它。如果您提供的是空字符串,则函数会写入标准输出。
- table‑spec
- 指定要在其上导出分区统计信息的表:
[[database.]schema.]table
默认架构为
public
。如果指定一个数据库,它必须是当前数据库。 - min‑range‑value, max‑range‑value
- 要导出统计信息的分区键的最小值和最大值,其中 min-range-value 必须 ≤ max‑range‑value。
重要
要导出的键范围必须等于先前通过 ANALYZE_STATISTICS_PARTITION 分析的完整分区范围或其超集。如果范围省略任何分析分区,则 EXPORT_STATISTICS_PARTITION 不会导出任何统计信息。 -
列
- table 中的列名称,通常为谓词列。可以指定多个逗号分隔列。Vertica 将导出的统计信息范围缩小到指定的列。
超级用户
限制
EXPORT_STATISTICS_PARTITION 不导出 LONG 数据类型列的统计信息。
另请参阅
EXPORT_STATISTICS2.9 - IMPORT_STATISTICS
从
EXPORT_STATISTICS
生成的 XML 文件导入统计信息。导入的统计信息将覆盖 XML 文件中引用的投影的现有统计信息。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
稳定语法
IMPORT_STATISTICS ( 'filename' )
参数
- filename
-
EXPORT_STATISTICS
生成的 XML 输入文件的路径和名称。
超级用户
限制
-
IMPORT_STATISTICS
仅导入有效的统计信息。如果源 XML 文件包含特定列的无效统计信息,则不导入这些统计信息,并且 Vertica 将发出警告。如果统计信息文件具有无效的结构,导入操作会失败。若要检查统计信息文件是否有效,请运行VALIDATE_STATISTICS
。 -
IMPORT_STATISTICS
返回 LONG 数据类型列的警告,因为EXPORT_STATISTICS
生成的源 XML 文件中不包含该类型列的统计信息。
示例
从先前由 EXPORT_STATISTICS
创建的 XML 文件导入 VMart 数据库的统计信息:
=> SELECT IMPORT_STATISTICS('/opt/vertica/examples/VMart_Schema/vmart_stats.xml');
IMPORT_STATISTICS
----------------------------------------------------------------------------
Importing statistics for projection date_dimension_super column date_key failure (stats did not contain row counts)
Importing statistics for projection date_dimension_super column date failure (stats did not contain row counts)
Importing statistics for projection date_dimension_super column full_date_description failure (stats did not contain row counts)
...
(1 row)
另请参阅
2.10 - VALIDATE_STATISTICS
验证由
EXPORT_STATISTICS
生成的 XML 文件中的统计信息。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
稳定语法
VALIDATE_STATISTICS ( 'XML‑file' )
参数
- XML‑file
- 包含待验证统计信息的 XML 文件的路径和名称。
超级用户
报告有效统计信息
以下示例显示了统计信息有效时的结果:
=> SELECT EXPORT_STATISTICS('cust_dim_stats.xml','customer_dimension');
EXPORT_STATISTICS
-----------------------------------
Statistics exported successfully
(1 row)
=> SELECT VALIDATE_STATISTICS('cust_dim_stats.xml');
VALIDATE_STATISTICS
---------------------
(1 row)
识别无效统计信息
如果 VALIDATE_STATISTICS
无法读取文档的 XML,则会引发以下错误:
=> SELECT VALIDATE_STATISTICS('/home/dbadmin/stats.xml');
VALIDATE_STATISTICS
----------------------------------------------------------------------------
Error validating statistics file: At line 1:1. Invalid document structure
(1 row)
如果某些表统计信息无效,VALIDATE_STATISTICS
会返回标识相关信息的报告。在以下示例中,函数报告属性 distinct
、buckets
、rows
、count
、并且 distinctCount
不能是负数。
=> SELECT VALIDATE_STATISTICS('/stats.xml');
WARNING 0: Invalid value '-1' for attribute 'distinct' under column 'public.t.x'.
Please use a positive value.
WARNING 0: Invalid value '-1' for attribute 'buckets' under column 'public.t.x'.
Please use a positive value.
WARNING 0: Invalid value '-1' for attribute 'rows' under column 'public.t.x'.
Please use a positive value.
WARNING 0: Invalid value '-1' for attribute 'count' under bound '1', column 'public.t.x'.
Please use a positive value.
WARNING 0: Invalid value '-1' for attribute 'distinctCount' under bound '1', column 'public.t.x'.
Please use a positive value.
VALIDATE_STATISTICS
---------------------
(1 row)
在这种情况下,再次对表运行
ANALYZE_STATISTICS
以创建有效统计信息。
另请参阅
3 - 工作负载管理函数
此部分包含 Vertica 专用的工作负载管理函数。
3.1 - ANALYZE_WORKLOAD
运行工作负载分析器,这是一款用于分析系统表中包含的系统信息的实用程序。
工作负载分析器可智能监控 SQL 查询的性能和工作负载历史记录、资源和配置,以确定查询性能低下的根本原因。 ANALYZE_WORKLOAD
从系统表
TUNING_RECOMMENDATIONS
返回您指定的范围和时间内的所有事件的优化建议。
优化建议基于统计信息、系统、 数据收集器事件和数据库-表-投影组合设计。工作负载分析器建议有助于快速轻松地优化查询性能。
有关常见的触发条件和建议,请参阅 工作负载分析器建议。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
ANALYZE_WORKLOAD ( '[ scope ]' [, 'since‑time' | save‑data ] );
参数
- scope
- 指定要分析的编录对象,如下所示:
[[database.]schema.]table
如果设置为空字符串,Vertica 将返回所有数据库对象的建议。
如果指定一个数据库,它必须是当前数据库。
- since‑time
- 指定分析时间范围的开始时间,时间范围一直持续到当前系统状态(包含)。如果省略此参数,"ANALYZE_WORKLOAD" 将返回自上次调用此函数以来的事件的建议。
注意
必须将字符串显式转换为
TIMESTAMP
或TIMESTAMPTZ
。例如:SELECT ANALYZE_WORKLOAD('T1', '2010-10-04 11:18:15'::TIMESTAMPTZ); SELECT ANALYZE_WORKLOAD('T1', TIMESTAMPTZ '2010-10-04 11:18:15');
- save‑data
- 指定是否保存
ANALYZE_WORKLOAD
的返回值:-
false
(默认值):将丢弃结果。 -
true
:保存ANALYZE_WORKLOAD
返回的结果。对ANALYZE_WORKLOAD
的后续调用返回从保存结果时最后一次调用开始的结果。该调用之前的对象事件将被忽略。
-
返回值
从
TUNING_RECOMMENDATIONS
返回聚合优化建议。
超级用户
示例
请参阅获取优化建议。
另请参阅
3.2 - CHANGE_CURRENT_STATEMENT_RUNTIME_PRIORITY
更改活动查询的运行时优先级。
注意
此函数将取代已弃用的函数CHANGE_RUNTIME_PRIORITY
。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
CHANGE_CURRENT_STATEMENT_RUNTIME_PRIORITY(transaction-id, 'value')
参数
- transaction‑id
- 标识从系统表
SESSIONS
获取的事务。 -
value
RUNTIMEPRIORITY
值:HIGH
、MEDIUM
或LOW
。
特权
-
超级用户:无
-
非超级用户只能更改自身查询的运行时优先级,不能提高查询的运行时优先级使其高于资源池级别。
示例
请参阅更改正在运行的查询的运行时优先级。
3.3 - CHANGE_RUNTIME_PRIORITY
更改主动运行查询的运行时优先级。请注意,虽然此函数仍然有效,但您应使用 CHANGE_CURRENT_STATEMENT_RUNTIME_PRIORITY
来更改运行时优先级。 CHANGE_RUNTIME_PRIORITY
将在未来版本的 Vertica 中弃用。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
CHANGE_RUNTIME_PRIORITY(TRANSACTION_ID,STATEMENT_ID, 'value')
参数
TRANSACTION_ID
- 会话中事务的标识符。
TRANSACTION_ID
不能为 NULL。您可以在“会话”表中找到事务 ID。
STATEMENT_ID
- 由 Vertica 编录分配的唯一数字 ID,可识别当前执行的语句。
您可以在“会话”表中找到语句 ID。
您可以指定 NULL,以更改事务中当前正在运行的查询的运行时优先级。
'value'
RUNTIMEPRIORITY
值。可以为 HIGH、MEDIUM 或 LOW。
特权
不需要特殊权限。但是,非超级用户只能改他们自己查询的运行时优先级。另外,非超级用户不能将查询的运行时优先级提高至高于资源池的优先级。
示例
=> SELECT CHANGE_RUNTIME_PRIORITY(45035996273705748, NULL, 'low');
3.4 - MOVE_STATEMENT_TO_RESOURCE_POOL
尝试将指定查询移动至指定目标池。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
MOVE_STATEMENT_TO_RESOURCE_POOL (session_id , transaction_id, statement_id, target_resource_pool_name)
参数
session_id
- 您想要移动的查询正在执行所的会话标识。
transaction_id
- 会话内事务标识。
statement_id
- 您想要移动的语句的唯一数字 ID。
target_resource_pool_name
- 您想将指定查询移至的现存资源池的名称。
输出
函数可能返回下列结果:
超级用户
示例
下面的例子显示如何将指定语句移动至调用 my_target_pool的资源池:
=> SELECT MOVE_STATEMENT_TO_RESOURCE_POOL ('v_vmart_node0001.example.-31427:0x82fbm', 45035996273711993, 1, 'my_target_pool');
另请参阅:
3.5 - SLEEP
在执行另一个语句或命令之前等待指定的秒数。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
SLEEP( seconds )
参数
seconds
- 等待时间(以一秒或多秒(0 或更高)为单位指定),使用正整数表示。单引号是可选的;例如,
SLEEP(3)
与SLEEP('3')
相同。
注意
-
如果成功执行此函数,返回值 0;否则,因语法错误返回错误消息。
-
不能取消休眠操作。
-
在包含共享资源的环境中使用 SLEEP() 时应当慎重,如结合使用独占锁的事务。
示例
以下命令将暂停执行 100 秒:
=> SELECT SLEEP(100);
sleep
-------
0
(1 row)