SELECT
A.IND_CODE
,SUM(IN_SELLNUM_Y_A)/50000 AS IN_SELLNUM_Y_A
,SUM(IN_SELLNUM)/50000 AS IN_SELLNUM
,SUM(IN_SELLNUM_P)/50000 AS IN_SELLNUM_P
,SUM(IN_SELLNUM_L)/50000 AS IN_SELLNUM_L
FROM DM_P_IND_TJIN_Y_Q_M_ALL A
INNER JOIN DIM_CIG_BASE B
ON A.CIG_ID=B.C_CIG
AND B.IS_CIGA='0'
AND B.CIG_IMPORTFLAG IN('0','3')
AND B.CIG_PRODUCTTYPE NOT IN ('05','06')
WHERE A.YM=201405 GROUP BY A.IND_CODE
其中,DM_P_IND_TJIN_Y_Q_M_ALL 表中的数据有200W ,DIM_CIG_BASE表中数据量有1W, 现在查询速度大致在15秒左右,我想请教下在这2个表中如何建索引 才能使查询速度更快,sql还能优化吗?小弟跪求大大们帮助!
------解决思路----------------------
DM_P_IND_TJIN_Y_Q_M_ALL:CIG_ID、YM、IND_CODE
DIM_CIG_BASE:C_CIG、IS_CIGA、CIG_IMPORTFLAG、CIG_PRODUCTTYPE
------解决思路----------------------
感觉B表建索引的用处不大,如果符合条件的数据占多数,建立索引基本没有效率上的提升
------解决思路----------------------
对A进行下表分区比较好吧