STL_HASH
分析查询的哈希执行步骤。
此视图对所有用户可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅系统表和视图中的数据可见性。
表列
| 列名称 | 数据类型 | 描述 |
|---|---|---|
| userid | integer | 生成该条目的用户 ID。 |
| query | integer | 查询 ID。查询列可用于连接其他系统表和视图。 |
| slice | integer | 标识运行查询所在切片的标识符。 |
| segment | integer | 标识查询区段的数字。 |
| step | integer | 运行的查询步骤。 |
| starttime | timestamp | 查询开始的时间(采用 UTC 表示)。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如:2009-06-12 11:29:19.131358。 |
| endtime | timestamp | 查询完成的时间(采用 UTC 表示)。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如:2009-06-12 11:29:19.131358。 |
| tasknum | integer | 分配用于运行步骤的查询任务进程的数量。 |
| rows | bigint | 处理的总行数。 |
| bytes | bigint | 该步骤中所有输出行的大小(以字节为单位)。 |
| slots | integer | 哈希存储桶的总数。 |
| occupied | integer | 包含记录的槽位的总数。 |
| maxlength | integer | 最大槽位的大小。 |
| tbl | integer | 表 ID。 |
| is_diskbased | character(1) | 如果为 true(t),则查询是作为基于磁盘的操作执行的。如果为 false(f),则查询是在内存中执行。 |
| workmem | bigint | 分配给步骤的工作内存的字节总数。 |
| num_parts | integer | 哈希表在一个哈希步骤期间被分为的分区的总数。 |
| est_rows | bigint | 要进行哈希处理的行的估计数量。 |
| num_blocks_permitted | integer | 此信息仅供内部使用。 |
| resizes | integer | 此信息仅供内部使用。 |
| checksum | bigint | 此信息仅供内部使用。 |
| runtime_filter_size | integer | 运行时筛选器的大小(以字节为单位)。 |
| max_runtime_filter_size | integer | 运行时筛选器的最大大小(以字节为单位)。 |
示例查询
以下示例返回有关在查询 720 的哈希中使用的分区数量的信息,并指示在磁盘上未运行任何步骤。
select slice, rows, bytes, occupied, workmem, num_parts, est_rows, num_blocks_permitted, is_diskbased from stl_hash where query=720 and segment=5 order by slice;
slice | rows | bytes | occupied | workmem | num_parts | est_rows | num_blocks_permitted | is_diskbased -------+------+--------+----------+----------+-----------+----------+----------------------+-------------- 0 | 145 | 585800 | 1 | 88866816 | 16 | 1 | 52 f 1 | 0 | 0 | 0 | 0 | 16 | 1 | 52 f (2 rows)