Table Redshift SVV_TABLE_INFO 中缺失的 ID 应该在那里,查看 STL_QUERY 和 STL_SCAN
Table ids missing in Redshift SVV_TABLE_INFO that should be there, looking at STL_QUERY and STL_SCAN
我正在调查 Redshift 查询及其扫描的 tables。
为此,我从 STL_QUERY 系统视图开始,然后加入 STL_SCAN 视图以添加查询扫描的 table。
现在,当我调查查询语句时,我可以看到应该扫描一个真正的 Redshift table,查看 SELECT 语句。但是,STL_SCAN 数据显示了三个 table(348、671 和 751341)
在这 3 个中,只有一个 (751341) 是通过 SVV_TABLE_INFO.
连接找到的真实的
另外2个table是什么?
Redshift 将编号较低的 table ID 分配给中间结果(查询步骤之间的投影、排序输出等)。在某些情况下,中间结果会写入磁盘,并且对这些结果的扫描会在 stl_scan
.
中有一个条目
文档 "Query Analysis Workflow" 为查看 Redshift 查询提供了全面的指导。 https://docs.aws.amazon.com/redshift/latest/dg/c-query-analysis-process.html
首先,您可以使用以下查询查看解释计划和查询摘要:
--Explain Plan of a Given Query ID
SELECT userid, query, plannode, info
FROM stl_explain
WHERE query IN (79639676)
ORDER BY query, nodeid, parentid
;
--Processing Summary of a Given Query ID
SELECT *
FROM svl_query_summary a
WHERE query IN (2251580)
ORDER BY query, stm, seg, step
;
我正在调查 Redshift 查询及其扫描的 tables。 为此,我从 STL_QUERY 系统视图开始,然后加入 STL_SCAN 视图以添加查询扫描的 table。
现在,当我调查查询语句时,我可以看到应该扫描一个真正的 Redshift table,查看 SELECT 语句。但是,STL_SCAN 数据显示了三个 table(348、671 和 751341)
在这 3 个中,只有一个 (751341) 是通过 SVV_TABLE_INFO.
连接找到的真实的另外2个table是什么?
Redshift 将编号较低的 table ID 分配给中间结果(查询步骤之间的投影、排序输出等)。在某些情况下,中间结果会写入磁盘,并且对这些结果的扫描会在 stl_scan
.
文档 "Query Analysis Workflow" 为查看 Redshift 查询提供了全面的指导。 https://docs.aws.amazon.com/redshift/latest/dg/c-query-analysis-process.html
首先,您可以使用以下查询查看解释计划和查询摘要:
--Explain Plan of a Given Query ID
SELECT userid, query, plannode, info
FROM stl_explain
WHERE query IN (79639676)
ORDER BY query, nodeid, parentid
;
--Processing Summary of a Given Query ID
SELECT *
FROM svl_query_summary a
WHERE query IN (2251580)
ORDER BY query, stm, seg, step
;