我在哪里可以找到 Redshift 中的使用情况统计信息?

Posted

技术标签:

【中文标题】我在哪里可以找到 Redshift 中的使用情况统计信息?【英文标题】:Where can I find usage statistics in Redshift? 【发布时间】:2018-05-04 14:53:43 【问题描述】:

首先感谢您的帮助!

我想找出数据库中哪些表使用最频繁,即查询表的用户数量、查询的次数、每个表用户消耗的资源、总时间查询的表以及任何其他有用的数据。 现在我将分析限制在 9 个特定的表。 我尝试使用 stl_scanpg_user 使用接下来的两个查询:

SELECT
    s.perm_table_name           AS table_name,
    count(*)                    AS qty_query,
    count(DISTINCT s.userid)    AS qty_users
FROM stl_scan s
JOIN pg_user b
    ON s.userid = b.usesysid
JOIN temp_mone_tables tmt
    ON tmt.table_id = s.tbl AND tmt.table = s.perm_table_name
WHERE s.userid > 1
GROUP BY 1
ORDER BY 1;

SELECT
    b.usename                                       AS user_name,
    count(*)                                        AS qty_scans,
    count(DISTINCT s.tbl)                           AS qty_tables,
    count(DISTINCT trunc(starttime))                AS qty_days
FROM stl_scan s
JOIN pg_user b
    ON s.userid = b.usesysid
JOIN temp_mone_tables tmt
    ON tmt.table_id = s.tbl AND tmt.table = s.perm_table_name
WHERE s.userid > 1
GROUP BY 1
ORDER BY 1;

temp_mone_tables 是一个临时表,其中包含我感兴趣的表的 ID 和名称。

通过此查询,我可以获得一些信息,但我需要更多详细信息。令人惊讶的是,关于此类统计数据的在线数据并不多。

再次感谢大家!

【问题讨论】:

对 Redshift 不太熟悉,但这有帮助吗? docs.aws.amazon.com/redshift/latest/dg/r_SVV_TABLE_INFO.html 感谢 Jacob H 的帮助。不幸的是,该视图包含有关表本身的信息,而不是有关其使用的信息。无论如何,这些信息也很有帮助! ***.com/questions/67543337/… 【参考方案1】:

干得好!使用stl_scan 表,您走在正确的轨道上。我不清楚你在寻找什么进一步的细节。

有关资源使用情况的详细指标,您可能需要使用SVL_QUERY_METRICS_SUMMARY 视图。请注意,这些数据是按查询而非表格汇总的,因为查询是利用资源的主要方式。

一般来说,看看admin queries (and views) in our Redshift Utils library on GitHub,尤其是v_get_tbl_scan_frequency.sql

【讨论】:

非常感谢!都是不错的资源!!我现在就去看看!【参考方案2】:

感谢Joe Harris' 的回答,我能够在之前的查询中添加很多信息。将 svl_query_metrics_summary 加入到 stl_scan 后,您可以获得有关资源消耗的重要数据,这些信息可以扩展到将它们加入到 Joe 的答案中列出的大量视图中。

对我来说,解决方案从下一个查询开始:

SELECT *
FROM stl_scan ss
JOIN pg_user pu
    ON ss.userid = pu.usesysid
JOIN svl_query_metrics_summary sqms
    ON ss.query = sqms.query
JOIN temp_mone_tables tmt
    ON tmt.table_id = ss.tbl AND tmt.table = ss.perm_table_name

查询为您提供了大量数据,可以根据需要以多种方式进行汇总。

请记住,temp_mone_tables 是一个临时表,其中包含我感兴趣的表的 tableid 和名称。

【讨论】:

以上是关于我在哪里可以找到 Redshift 中的使用情况统计信息?的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里可以找到 XAMPP 中的 MySQL 日志文件

我在哪里可以找到 phpMyAdmin 中的 MySQL 日志?

AWS Redshift:清除 STL 表的频率

我在哪里可以找到 CRA 中的 .eslintrc?

我在哪里可以找到 Aptana Studio 中的 jslint 配置文件

如何在 Redshift 中创建自定义聚合 UDF 函数?