You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询指定时间范围内访问Redshift表的查询数量及明细

Redshift表访问统计相关问题解答

1. 特定时间范围命中指定表的查询总数与内容查询方法

你可以通过Redshift内置的系统视图关联查询实现该需求,核心用到SVL_QUERY_SCAN(记录查询扫描的表信息)和STL_QUERYTEXT(记录完整查询内容)两个系统视图,参考SQL如下:

-- 统计指定时间范围、指定表的查询总数
SELECT COUNT(DISTINCT q.query) AS query_total_count
FROM svl_query_scan s
JOIN stl_querytext q ON s.query = q.query
WHERE s.schemaname = '你的Schema名称'
  AND s.tablename = '你的表名称'
  AND s.starttime BETWEEN '2024-01-01 00:00:00' AND '2024-01-07 23:59:59';

-- 获取这些查询的具体内容
SELECT DISTINCT q.query, q.text AS query_content, s.starttime AS execute_time
FROM svl_query_scan s
JOIN stl_querytext q ON s.query = q.query
WHERE s.schemaname = '你的Schema名称'
  AND s.tablename = '你的表名称'
  AND s.starttime BETWEEN '2024-01-01 00:00:00' AND '2024-01-07 23:59:59'
ORDER BY s.starttime DESC;

注意:Redshift默认系统视图仅保留最近90天的查询历史数据,若需要更长周期的统计,需定期将系统视图数据同步到自定义表中存储。


2. Redshift表实时访问统计数据获取方法

可以获取,核心通过以下两个维度的系统视图查询:

  • 表级实时统计:查询SVV_TABLE_INFO视图,可获取目标表的最近访问时间、累计查询次数、累计扫描行数、磁盘占用、分片分布等核心统计指标,参考SQL如下:
SELECT "table", schema, size AS disk_usage_mb, tbl_rows AS total_rows,
       unsorted_rows, sortkey1_skew, recent_access_time, query_count
FROM svv_table_info
WHERE schema = '你的Schema名称'
  AND "table" = '你的表名称';
  • 运行中查询实时统计:查询STL_INFLIGHT视图关联SVL_QUERY_SCAN,可获取当前正在执行的命中目标表的查询的实时运行数据,包括执行时长、扫描数据量、内存占用等指标。

内容的提问来源于stack exchange,提问作者bigDataArtist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:15:06