获取小型查询的查询计划状态
存储在
执行_引擎_配置文件
系统表中的实时分析计数器可用于当前执行的所有语句,包括
合并等内部操作。
如果满足以下任一条件,则可以在查询执行完成后使用分析计数器:
-
查询是通过
PROFILE
命令运行的 -
Vertica 元函数
ENABLE_PROFILING
启用了系统范围的分析。 -
查询运行了两秒以上。
分析计数器保存在 EXECUTION_ENGINE_PROFILES
系统表中,直至超出存储配额。
例如:
-
分析查询以从
EXECUTION_ENGINE_PROFILES
获取transaction_id
和statement_id
。例如:=> PROFILE SELECT * FROM t1 JOIN t2 ON t1.x = t2.y; NOTICE 4788: Statement is being profiled HINT: Select * from v_monitor.execution_engine_profiles where transaction_id=45035996273955065 and statement_id=4; NOTICE 3557: Initiator memory for query: [on pool general: 248544 KB, minimum: 248544 KB] NOTICE 5077: Total memory required by query: [248544 KB] x | y | z ---+---+------- 3 | 3 | three (1 row)
-
查询系统表
QUERY_PLAN_PROFILES
。注意
为了获得最佳结果,请按列transaction_id
、statement_id
、path_id
和path_line_index
进行排序。=> SELECT ... FROM query_plan_profiles WHERE transaction_id=45035996273955065 and statement_id=4; ORDER BY transaction_id, statement_id, path_id, path_line_index;