用户在执行查询或者执行INSERT/DELETE/UPDATE/CREATE TABLE AS语句时,可能会遇到性能问题。这种情况下,通过查询GS_WLM_SESSION_STATISTICS,GS_WLM_SESSION_HISTORY,GS_WLM_SESSION_QUERY_INFO_ALL视图的warning字段可以获得对应查询可能导致性能问题的告警信息,为性能调优提供参考。
目前支持对以下7种导致性能问题的场景上报告警。
如果存在单列或者多列统计信息未收集,则上报相关告警。
需要特别注意的是,对于基于OBS外表的查询,如果未收集统计信息也会上报统计信息未收集的告警,但是由于OBS外表的analyze的性能比较差,因此,需要用户对这种场景下告警是否通过analyze收集统计信息,以获取更优的性能,和查询本身的复杂度做权衡。
告警信息示例:
Statistic Not Collect: schema_test.t1
Statistic Not Collect:
schema_test.t2(c1,c2)
Statistic Not Collect: schema_test.t3((c1,c2))
Statistic Not Collect:
schema_test.t4(c1,c2) schema_test.t4((c1,c2))
2.SQL不下推
对于不下推的SQL,尽可能详细上报导致不下推的原因。
对于函数导致的不下推,告警导致不下推的函数名信息;
告警信息示例:
SQL is not plan-shipping, reason : "With Recursive" can not be shipped"
SQL is not plan-shipping, reason : "Function now() can not be shipped"
SQL is not plan-shipping, reason : "Function string_agg() can not be shipped"
3.HashJoin中大表做内表
告警信息示例:
PlanNode[7] Large Table is INNER in HashJoin “Vector Hash Aggregate”
4.大表等值连接使用Nestloop
告警信息示例:
PlanNode[5] Large Table with Equal-Condition use Nestloop"Nested Loop"
5.大表Broadcast
告警信息示例:
PlanNode[5] Large Table in Broadcast "Streaming(type: BROADCAST dop: 1/2)"
6.数据倾斜
告警信息示例:
PlanNode[6] DataSkew:"Seq Scan", min_dn_tuples:0, max_dn_tuples:524288
7.估算不准
告警信息示例:
PlanNode[5] Inaccurate Estimation-Rows: "Hash Join" A-Rows:0, E-Rows:52488
规格约束
3.对于“数据倾斜”和“估算不准”两种类型告警,在某一个plan树结构下,只上报下层节点的告警,上层节点不再重复告警。这主要是因为这两种类型的告警可能是因为底层触发上层的。例如,如果在scan节点已经存在数据倾斜,那么在上层的hashagg等其他算子很可能也出现数据倾斜。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!