hive sql优化基础

文章目录


提示:本文非原创。记录此文的目的:再学习和梳理sql 优化知识点,方便以后遇到类似问题方便查阅以及快速处理。

一、数据倾斜分类

根据使用经验总结,引起数据倾斜的主要原因有如下几类:

  • Join

  • GroupBy

  • Count(Distinct)

  • ROW_NUMBER(TopN)

  • 动态分区

其中出现的频率排序为JOIN > GroupBy > Count(Distinct) > ROW_NUMBER > 动态分区。

二、Join倾斜

1.大表Join小表

使用MAPJOIN HINT语法,如下所示。

sql 复制代码
SELECT  /*+ mapjoin(t2,t3)*/
        t1.ip
        ,t1.is_anon
        ,t1.user_id
        ,t1.user_agent
        ,t1.referer
        ,t2.ssl_ciphers
        ,t3.shop_province_name
        ,t3.shop_city_name
FROM    <viewtable> t1
LEFT OUTER JOIN (<other_viewtable>) t2
ON t1.header_eagleeye_traceid = t2.eagleeye_traceid
LEFT OUTER JOIN (  SELECT  shop_id
                            ,city_name AS shop_city_name
                            ,province_name AS shop_province_name
                    FROM    <tenanttable>
                    WHERE   ds = MAX_PT('<tenanttable>')
                    AND     is_valid = 1
                ) t3
ON t1.shopid = t3.shop_id
相关推荐
q***710127 分钟前
SQL注入(SQL Injection)攻击原理与防御措施
数据库·sql·oracle
f***R837 分钟前
解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException
java·数据库·sql
心止水j2 小时前
hive分区
数据仓库·hive·hadoop
心止水j2 小时前
Hive 桶表的创建、数据导入、查询与导出
数据仓库·hive·hadoop
b***46244 小时前
从 SQL 语句到数据库操作
数据库·sql·oracle
q***07145 小时前
Spring Boot 中使用 @Transactional 注解配置事务管理
数据库·spring boot·sql
m***92385 小时前
【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串
数据库·sql·mysql
合作小小程序员小小店7 小时前
图书管理系统,基于winform+sql sever,开发语言c#,数据库mysql
开发语言·数据库·sql·microsoft·c#
p***924813 小时前
深入理解与实战SQL IFNULL()函数
数据库·sql·oracle
Y***985117 小时前
DVWA靶场通关——SQL Injection篇
数据库·sql