WAREHOUSE_LOAD_HISTORY¶
此表函数可用于查询指定日期范围内单个仓库的活动历史记录(定义为“查询负载”)。
备注
此函数返回过去 14 天内的仓库活动。
备注
指定当前时间戳一分钟内的日期值可能会产生不准确的结果。
语法¶
WAREHOUSE_LOAD_HISTORY(
[ DATE_RANGE_START => <constant_expr> ]
[, DATE_RANGE_END => <constant_expr> ]
[, WAREHOUSE_NAME => '<string>' ] )
实参¶
所有实参均为可选。
DATE_RANGE_START => constant_expr
、.DATE_RANGE_END => constant_expr
过去 14 天内检索仓库加载历史记录数据的日期范围:
如果未指定结束日期,则会将 CURRENT_DATE 用作范围的结束日期。
如果未指定开始日期,则范围会在
DATE_RANGE_END
开始前 10 分钟开始(即默认值是显示前 10 分钟的加载历史记录)。例如,如果DATE_RANGE_END
是 CURRENT_DATE,则默认DATE_RANGE_START
是 前一天 11:50 PM。
如果范围超出了过去 15 天,则返回错误。
备注
如果所选时间段小于 8 小时,则以 5 秒的间隔显示负载;否则,使用 5 分钟的间隔。
WAREHOUSE_NAME => 'string'
要检索其使用情况加载历史记录的仓库的名称。注意,仓库名称必须使用单引号括起来。此外,如果仓库名称包含任何空格、混合大小写字符或特殊字符,则名称必须在单引号内使用双引号(例如
'"My Warehouse"'
和'mywarehouse'
)。
使用说明¶
要通过此函数获取结果,需要以下角色或权限之一:
ACCOUNTADMIN 角色可以通过此函数获取结果,因为它具有所有全局账户权限。
具有对 ACCOUNT 的 MONITOR USAGE 全局权限的角色可以通过此函数查询账户中的任何仓库。
具有对 WAREHOUSE 的 MONITOR 权限的角色可以通过此函数查询其拥有权限的仓库。
具有对 WAREHOUSE 的 OWNERSHIP 权限的角色拥有对仓库的所有权限,包括 MONITOR。
有关更多详细信息,请参阅 访问控制权限。
当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema。
输出¶
备注
针对此函数的输出列,查询负载值是特定时间间隔内处于特定状态的所有查询的总执行时间(以秒为单位)与该时间间隔的总时间(以秒为单位)的比率。
例如,如果 276 秒是 5 分钟(300 秒)间隔内 4 个查询的总时间,则查询负载值为 276/300 = 0.92。
该函数返回以下列:
列名称 |
数据类型 |
描述 |
---|---|---|
START_TIME |
TIMESTAMP_LTZ |
发生仓库使用的指定时间范围的起始点(以 UTC 时区表示)。 |
END_TIME |
TIMESTAMP_LTZ |
发生仓库使用的指定时间范围的结束点(以 UTC 时区表示)。 |
WAREHOUSE_NAME |
TEXT |
仓库的名称。 |
AVG_RUNNING |
NUMBER(38,2) |
执行的查询的查询负载值。 |
AVG_QUEUED_LOAD |
NUMBER(38,2) |
因仓库超载而排队的查询的查询负载值。 |
AVG_QUEUED_PROVISIONING |
NUMBER(38,2) |
因仓库正在配置而排队的查询的查询负载值。 |
AVG_BLOCKED |
NUMBER(38,2) |
被事务锁阻止的查询的查询负载值。 |
示例¶
检索当前用于会话的仓库过去一小时(间隔为 5 秒)的加载历史记录:
use warehouse mywarehouse; select * from table(information_schema.warehouse_load_history(date_range_start=>dateadd('hour',-1,current_timestamp())));
检索当前用于会话的仓库过去 14 天(间隔为 5 分钟)的加载历史记录:
use warehouse mywarehouse; select * from table(information_schema.warehouse_load_history(date_range_start=>dateadd('day',-14,current_date()), date_range_end=>current_date()));