各位前辈,我的SQL语句如下(Oracle中):SELECT max(formno),qisdapn, REPLACE (makercode, ';', '') AS makercode, makername,
weight
FROM makerpn
group by qisdapn,makercode,makername,weight因为数据有几十万笔,所以查起来耗时太长。
请问各位大侠,有没有可以优化的SQL以缩短查询的时间,谢谢。
weight
FROM makerpn
group by qisdapn,makercode,makername,weight因为数据有几十万笔,所以查起来耗时太长。
请问各位大侠,有没有可以优化的SQL以缩短查询的时间,谢谢。
weight
FROM makerpn
group by qisdapn,makercode,makername,weight
这个语句很简洁了 几十万数据就很慢?执行用多长时间?
如果楼主的主机是多 cpu 的,建议采用并行查询会快很多,添加红色标示关键字就可以SELECT /*+parallel(a,5) */max(formno),
qisdapn,
REPLACE(makercode, ';', '') AS makercode,
makername,
weight
FROM makerpn a
group by qisdapn, makercode, makername, weight
--试试
select formno,qisdapn, makercode, makername
(SELECT formno,qisdapn, REPLACE (makercode, ';', '') AS makercode, makername,
row_number() over(partition by qisdapn,makercode,makername,weight order by formno desc) rn
weight
FROM makerpn)
where rn=1