Even transforming string to date type the result just all the same...

> 在 2016年1月19日,14:24,陶进 <[email protected]> 写道:
> 
> it was because the item day was compare to a string '2016-03-01' while day  
> type is data?
> I guessed!
> 
> 在 2016/1/19 12:36, 查 锐 写道:
>> hi all,
>> 
>> I created a table with date range partition, and my creating table cause as 
>> follows:
>> 
>> CREATE TABLE zhongxing_2015_obj_12months (RegionID integer, eNodeBID bigint, 
>> CellID integer, Time varchar(10), v1 integer, v2 integer, v3 integer, v4 
>> integer, v5 integer, v6 integer, v7 integer, v8 integer, v9 integer, v10 
>> integer, v11 integer, v12 integer, v13 integer, v14 integer, v15 integer, 
>> v16 integer, v17 integer, v18 integer, v19 integer, v20 integer, v21 
>> integer, v22 integer, v23 integer, v24 integer, v25 integer, v26 integer, 
>> v27 integer, v28 integer, v29 integer, v30 integer, v31 integer, v32 
>> integer, v33 integer, v34 integer, v35 integer, v36 integer, v37 integer, 
>> v38 integer, v39 integer, v40 integer, v41 integer, v42 integer, v43 
>> integer, v44 integer, v45 integer, v46 integer, v47 integer, v48 integer, 
>> v49 integer, v50 integer, v51 integer, v52 integer, v53 integer, v54 
>> integer, v55 integer, v56 integer, v57 integer, v58 integer, v59 integer, 
>> v60 integer, v61 integer, v62 integer, v63 integer, v64 integer, v65 
>> integer, v66 integer, v67 integer, v68 integer, v69 integer, v70 integer, 
>> v71 integer, v72 integer, v73 integer, v74 integer, v75 integer, v76 
>> integer, v77 integer, v78 integer, v79 integer, v80 integer, v81 integer, 
>> v82 integer, v83 integer, v84 integer, v85 integer, v86 integer, v87 
>> integer, v88 integer, v89 integer, v90 integer, v91 integer, v92 integer, 
>> v93 integer, v94 integer, v95 integer, v96 integer, v97 integer, v98 
>> integer, v99 integer, v100 integer, v101 integer, v102 integer, v103 
>> integer, v104 integer, v105 integer, v106 integer, v107 integer, v108 
>> integer, v109 integer, v110 integer, v111 integer, v112 integer, v113 
>> integer, v114 integer, v115 integer, v116 integer, v117 integer, v118 
>> integer, v119 integer, v120 integer, v121 integer, v122 integer, v123 
>> integer, v124 integer, v125 integer, v126 integer, v127 integer, v128 
>> integer, v129 integer, v130 integer, v131 integer, v132 integer, v133 
>> integer, v134 integer, v135 integer, v136 integer, v137 integer, v138 
>> integer, v139 integer, v140 integer, v141 integer, v142 integer, v143 
>> integer, v144 integer, v145 integer, v146 integer, v147 integer, v148 
>> integer, v149 integer, v150 integer, v151 integer, v152 integer, v153 
>> integer, v154 integer, v155 integer, v156 integer, v157 integer, v158 
>> integer, v159 integer, v160 integer, v161 integer, v162 integer, v163 
>> integer, v164 integer, v165 integer, v166 integer, v167 integer, v168 
>> integer, v169 integer, v170 integer, v171 integer, v172 integer, v173 
>> integer, v174 integer, v175 integer, day date) WITH (appendonly=true, 
>> orientation=parquet)
>>   DISTRIBUTED BY (Time)
>>   PARTITION BY RANGE(day)
>> ( PARTITION JAN START (date '2015-01-01') INCLUSIVE ,
>> PARTITION FEB START (date '2015-02-01') INCLUSIVE ,
>> PARTITION MAR START (date '2015-03-01') INCLUSIVE ,
>> PARTITION APR START (date '2015-04-01') INCLUSIVE ,
>> PARTITION MAY START (date '2015-05-01') INCLUSIVE ,
>> PARTITION JUN START (date '2015-06-01') INCLUSIVE ,
>> PARTITION JUL START (date '2015-07-01') INCLUSIVE ,
>> PARTITION AUG START (date '2015-08-01') INCLUSIVE ,
>> PARTITION SEP START (date '2015-09-01') INCLUSIVE ,
>> PARTITION OCT START (date '2015-10-01') INCLUSIVE ,
>> PARTITION NOV START (date '2015-11-01') INCLUSIVE ,
>> PARTITION DEC START (date '2015-12-01') INCLUSIVE
>>                   END (date '2016-01-01') EXCLUSIVE );
>> 
>> i.e the table has 12 partitions, and 1 month data in each partition.
>> 
>> And I INSERT the table with the sql
>> 
>> INSERT INTO zhongxing_2015_obj_12months SELECT  RegionID, eNodeBID, CellID, 
>> Time, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, 
>> v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, 
>> v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, 
>> v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, 
>> v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, 
>> v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, 
>> v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, 
>> v106, v107, v108, v109, v110, v111, v112, v113, v114, v115, v116, v117, 
>> v118, v119, v120, v121, v122, v123, v124, v125, v126, v127, v128, v129, 
>> v130, v131, v132, v133, v134, v135, v136, v137, v138, v139, v140, v141, 
>> v142, v143, v144, v145, v146, v147, v148, v149, v150, v151, v152, v153, 
>> v154, v155, v156, v157, v158, v159, v160, v161, v162, v163, v164, v165, 
>> v166, v167, v168, v169, v170, v171, v172, v173, v174, v175, 
>> to_date(substring(Time from 1 for 6),'yyMMdd') AS day FROM zhongxing_2015;
>> 
>> but when I query one partition with the sql
>> 
>> select
>> sum(v1)+sum(v2)+sum(v3)+sum(v4)+sum(v5) as P1,
>> sum(v6)+sum(v7)+sum(v8)+sum(v9)+sum(v10) as P2,
>> sum(v11)+sum(v12)+sum(v13)+sum(v14)+sum(v15) as P3,
>> sum(v16)+sum(v17)+sum(v18)+sum(v19)+sum(v20) as P4,
>> sum(v21)+sum(v22)+sum(v23)+sum(v24)+sum(v25) as P5,
>> sum(v26)+sum(v27)+sum(v28)+sum(v29)+sum(v30) as P6,
>> sum(v31)+sum(v32)+sum(v33)+sum(v34)+sum(v35) as P7,
>> sum(v36)+sum(v37)+sum(v38)+sum(v39)+sum(v40) as P8,
>> sum(v41)+sum(v42)+sum(v43)+sum(v44)+sum(v45) as P9,
>> sum(v46)+sum(v47)+sum(v48)+sum(v49)+sum(v50) as P10,
>> sum(v51)+sum(v52)+sum(v53)+sum(v54)+sum(v55) as P11,
>> sum(v56)+sum(v57)+sum(v58)+sum(v59)+sum(v60) as P12,
>> sum(v61)+sum(v62)+sum(v63)+sum(v64)+sum(v65) as P13,
>> sum(v66)+sum(v67)+sum(v68)+sum(v69)+sum(v70) as P14,
>> sum(v71)+sum(v72)+sum(v73)+sum(v74)+sum(v75) as P15,
>> sum(v76)+sum(v77)+sum(v78)+sum(v79)+sum(v80) as P16,
>> sum(v81)+sum(v82)+sum(v83)+sum(v84)+sum(v85) as P17,
>> sum(v86)+sum(v87)+sum(v88)+sum(v89)+sum(v90) as P18,
>> sum(v91)+sum(v92)+sum(v93)+sum(v94)+sum(v95) as P19,
>> sum(v96)+sum(v97)+sum(v98)+sum(v99)+sum(v100) as P20,
>> sum(v101)+sum(v102)+sum(v103)+sum(v104)+sum(v105) as P21,
>> sum(v106)+sum(v107)+sum(v108)+sum(v109)+sum(v110) as P22,
>> sum(v111)+sum(v112)+sum(v113)+sum(v114)+sum(v115) as P23,
>> sum(v116)+sum(v117)+sum(v118)+sum(v119)+sum(v120) as P24,
>> sum(v121)+sum(v122)+sum(v123)+sum(v124)+sum(v125) as P25,
>> sum(v126)+sum(v127)+sum(v128)+sum(v129)+sum(v130) as P26,
>> sum(v131)+sum(v132)+sum(v133)+sum(v134)+sum(v135) as P27,
>> sum(v136)+sum(v137)+sum(v138)+sum(v139)+sum(v140) as P28,
>> sum(v141)+sum(v142)+sum(v143)+sum(v144)+sum(v145) as P29,
>> sum(v146)+sum(v147)+sum(v148)+sum(v149)+sum(v150) as P30,
>> sum(v151)+sum(v152)+sum(v153)+sum(v154)+sum(v155) as P31,
>> sum(v156)+sum(v157)+sum(v158)+sum(v159)+sum(v160) as P32,
>> sum(v161)+sum(v162)+sum(v163)+sum(v164)+sum(v165) as P33,
>> sum(v166)+sum(v167)+sum(v168)+sum(v169)+sum(v170) as P34,
>> sum(v171)+sum(v172)+sum(v173)+sum(v174)+sum(v175) as P35,
>> substr(time,1,4) as month,
>> eNodeBID,
>> CellID
>> from zhongxing_2015_obj_12months
>> where (day >= '2015-03-01' and day <= '2015-03-31')
>> and (Time between '1503010000' and '1503312345')
>> and RegionID=999
>> group by eNodeBID,CellID,month
>> order by P1 DESC limit 50;
>> 
>> I found the performance is not good, and when I substitute the table name 
>> ‘zhongxing_2015_obj_12months’ with the sub partition table name 
>> ‘zhongxing_2015_obj_12months_1_prt_mar’, I got almost 1x performance 
>> improvement. 
>> 
>> I think for the partitioned table, this two sql will be parsed to the same 
>> thing. So I wonder why this situation could be happened. I run the explain 
>> query, and the result as follows:
>> 
>>                                                                              
>>                QUERY PLAN                                                    
>>                                          
>> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>  Limit  (cost=1725101.68..1725102.80 rows=50 width=324)
>>    ->  Gather Motion 192:1  (slice2; segments: 192)  
>> (cost=1725101.68..1725102.80 rows=50 width=324)
>>          Merge Key: p1
>>          ->  Limit  (cost=1725101.68..1725101.80 rows=1 width=324)
>>                ->  Sort  (cost=1725101.68..1725113.19 rows=24 width=324)
>>                      Sort Key (Limit): p1
>>                      ->  HashAggregate  (cost=1721149.86..1724821.55 rows=24 
>> width=324)
>>                            Group By: 
>> public.zhongxing_2015_obj_12months.enodebid, 
>> public.zhongxing_2015_obj_12months.cellid, "?column3?"
>>                            ->  Redistribute Motion 192:192  (slice1; 
>> segments: 192)  (cost=1718939.94..1719055.04 rows=24 width=1444)
>>                                  Hash Key: 
>> public.zhongxing_2015_obj_12months.enodebid, 
>> public.zhongxing_2015_obj_12months.cellid, unnamed_attr_3
>>                                  ->  HashAggregate  
>> (cost=1718939.94..1718962.96 rows=24 width=1444)
>>                                        Group By: 
>> public.zhongxing_2015_obj_12months.enodebid, 
>> public.zhongxing_2015_obj_12months.cellid, 
>> substr(public.zhongxing_2015_obj_12months.day::text, 1, 7)
>>                                        ->  Result  (cost=0.00..1698454.59 
>> rows=240 width=716)
>>                                              ->  Append  
>> (cost=0.00..1698224.41 rows=240 width=716)
>>                                                    ->  Parquet table Scan on 
>> zhongxing_2015_obj_12months_1_prt_mar zhongxing_2015_obj_12months  
>> (cost=0.00..1698224.41 rows=240 width=716)
>>                                                          Filter: day = 
>> '2015-03-01 00:00:00'::timestamp without time zone
>> 
>> I can see the “Parquet table Scan on zhongxing_2015_obj12months_1_prt_mar 
>> zhongxing_2015_obj_12months” part, dose this mean scanner scanning ALL DATA  
>> of all partitions in table zhongxing_2015_obj_12months plus one sub table 
>> zhongxing_2015_obj_12months_1_prt_mar include one partition of 12?
>> 
>> I will waiting for the answer online, this problem is very critical and 
>> urgent for me!
>> 
>> Thank you so mush!!!
>> 
>> Best Regards
>> Rui Zha
>> 
>> 
> 
>  
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>     受 Avast 保护的无病毒计算机已发送该电子邮件。 
> www.avast.com 
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>

Reply via email to