雪花-查看最查询哪些表和列

时间:2020-10-13 19:25:05

标签: snowflake-cloud-data-platform

snow / sql查询中有什么方法可以查看查询最多的表以及哪些列?我想知道什么数据对我的用户最有价值,并且不确定如何以编程方式进行。任何想法都很感激-谢谢!

1 个答案:

答案 0 :(得分:0)

我发现的最好的(暂时):

  • 对于任何给定的查询,您都可以通过查看为其生成的计划来查找要扫描的表:
SELECT *, "objects"
FROM TABLE(EXPLAIN_JSON(SYSTEM$EXPLAIN_PLAN_JSON('SELECT * FROM a.b.any_table_or_view')))
WHERE "operation"='TableScan'
  • 您也可以找到所有以前运行的查询:
select QUERY_TEXT 
from table(information_schema.query_history())

自然而然的下一步是将两者结合在一起-但这并不简单,因为您会看到类似以下的错误:

SQL compilation error: argument 1 to function EXPLAIN_JSON needs to be constant, found 'SYSTEM$EXPLAIN_PLAN_JSON('SELECT * FROM a.b.c')'

解决方案是将来自query_history()的查询与外部SYSTEM$EXPLAIN_PLAN_JSON的查询合并(以使字符串恒定),然后便可以找出查询最多的表。