1 - 配置函数

此部分包含特定于 Vertica 的配置函数。

1.1 - CLEAR_PROFILING

从指定分析类型的内存数据中清除。

这是元函数。您必须在顶级 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

允许当前会话收集指定类型的分析数据。有关详细信息,请参阅 启用分析

这是元函数。您必须在顶级 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 在后台运行。

这是元函数。您必须在顶级 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_PARTITION

2.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‑valuemax‑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)
      
    • 如果列是 DATETIMESTAMP/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 会删除此表或指定列的所有分区级统计信息。
类别
要删除的统计信息类别,为以下之一:
  • 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
table 中的列名称,通常为谓词列。可以指定多个逗号分隔列。Vertica 将导出的统计信息范围缩小到指定的列。

超级用户

限制

EXPORT_STATISTICS_PARTITION 不导出 LONG 数据类型列的统计信息。

另请参阅

EXPORT_STATISTICS

2.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 会返回标识相关信息的报告。在以下示例中,函数报告属性 distinctbucketsrowscount、并且 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" 将返回自上次调用此函数以来的事件的建议。
save‑data
指定是否保存 ANALYZE_WORKLOAD 的返回值:
  • false (默认值):将丢弃结果。

  • true:保存 ANALYZE_WORKLOAD 返回的结果。对 ANALYZE_WORKLOAD 的后续调用返回从保存结果时最后一次调用开始的结果。该调用之前的对象事件将被忽略。

返回值

TUNING_RECOMMENDATIONS 返回聚合优化建议。

超级用户

示例

请参阅获取优化建议

另请参阅

3.2 - CHANGE_CURRENT_STATEMENT_RUNTIME_PRIORITY

更改活动查询的运行时优先级。

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

CHANGE_CURRENT_STATEMENT_RUNTIME_PRIORITY(transaction-id, 'value')

参数

transaction‑id
标识从系统表 SESSIONS 获取的事务。
value
RUNTIMEPRIORITY 值:HIGHMEDIUMLOW

特权

  • 超级用户:无

  • 非超级用户只能更改自身查询的运行时优先级,不能提高查询的运行时优先级使其高于资源池级别。

示例

请参阅更改正在运行的查询的运行时优先级

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)